Interface ServerResponse
- All Known Subinterfaces:
AsyncServerResponse
,EntityResponse<T>
,RenderingResponse
public interface ServerResponse
Represents a typed server-side HTTP response, as returned
by a handler function or
filter function.
- Since:
- 5.2
- Author:
- Arjen Poutsma
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Defines a builder that adds a body to the response.static interface
Defines the context used during thewriteTo(HttpServletRequest, HttpServletResponse, Context)
.static interface
Defines a builder that adds headers to the response.static interface
Defines a builder for a body that sends server-sent events.static interface
Defines a builder for a streaming response body. -
Method Summary
Modifier and TypeMethodDescriptionstatic ServerResponse.BodyBuilder
accepted()
Create a builder with a 202 Accepted status.static ServerResponse
Create a (built) response with the given asynchronous response.static ServerResponse
Create a (built) response with the given asynchronous response.static ServerResponse.BodyBuilder
Create a builder with a 400 Bad Request status.cookies()
Return the cookies of this response.static ServerResponse.BodyBuilder
Create a builder with a 201 Created status and a location header set to the given URI.static ServerResponse
from
(ErrorResponse response) Create aServerResponse
from the givenErrorResponse
.static ServerResponse.BodyBuilder
from
(ServerResponse other) Create a builder with the status code and headers of the given response.headers()
Return the headers of this response.static ServerResponse.HeadersBuilder<?>
Create a builder with a 204 No Content status.static ServerResponse.HeadersBuilder<?>
notFound()
Create a builder with a 404 Not Found status.static ServerResponse.BodyBuilder
ok()
Create a builder with the status set to 200 OK.static ServerResponse.BodyBuilder
permanentRedirect
(URI location) Create a builder with a 308 Permanent Redirect status and a location header set to the given URI.static ServerResponse.BodyBuilder
Create a builder with a 303 See Other status and a location header set to the given URI.static ServerResponse
sse
(Consumer<ServerResponse.SseBuilder> consumer) Create a server-sent event response.static ServerResponse
sse
(Consumer<ServerResponse.SseBuilder> consumer, Duration timeout) Create a server-sent event response.static ServerResponse.BodyBuilder
status
(int status) Create a builder with the given HTTP status.static ServerResponse.BodyBuilder
status
(HttpStatusCode status) Create a builder with the given HTTP status.Return the status code of this response.static ServerResponse.BodyBuilder
temporaryRedirect
(URI location) Create a builder with a 307 Temporary Redirect status and a location header set to the given URI.static ServerResponse.BodyBuilder
Create a builder with a 422 Unprocessable Entity status.writeTo
(HttpServletRequest request, HttpServletResponse response, ServerResponse.Context context) Write this response to the given servlet response.
-
Method Details
-
statusCode
HttpStatusCode statusCode()Return the status code of this response.- Returns:
- the status as an HttpStatusCode value
-
headers
HttpHeaders headers()Return the headers of this response. -
cookies
MultiValueMap<String,Cookie> cookies()Return the cookies of this response. -
writeTo
@Nullable ModelAndView writeTo(HttpServletRequest request, HttpServletResponse response, ServerResponse.Context context) throws ServletException, IOException Write this response to the given servlet response.- Parameters:
request
- the current requestresponse
- the response to write tocontext
- the context to use when writing- Returns:
- a
ModelAndView
to render, ornull
if handled directly - Throws:
ServletException
IOException
-
from
Create a builder with the status code and headers of the given response.- Parameters:
other
- the response to copy the status and headers from- Returns:
- the created builder
-
from
Create aServerResponse
from the givenErrorResponse
.- Parameters:
response
- theErrorResponse
to initialize from- Returns:
- the built response
- Since:
- 6.0
-
status
Create a builder with the given HTTP status.- Parameters:
status
- the response status- Returns:
- the created builder
-
status
Create a builder with the given HTTP status.- Parameters:
status
- the response status- Returns:
- the created builder
-
ok
Create a builder with the status set to 200 OK.- Returns:
- the created builder
-
created
Create a builder with a 201 Created status and a location header set to the given URI.- Parameters:
location
- the location URI- Returns:
- the created builder
-
accepted
Create a builder with a 202 Accepted status.- Returns:
- the created builder
-
noContent
Create a builder with a 204 No Content status.- Returns:
- the created builder
-
seeOther
Create a builder with a 303 See Other status and a location header set to the given URI.- Parameters:
location
- the location URI- Returns:
- the created builder
-
temporaryRedirect
Create a builder with a 307 Temporary Redirect status and a location header set to the given URI.- Parameters:
location
- the location URI- Returns:
- the created builder
-
permanentRedirect
Create a builder with a 308 Permanent Redirect status and a location header set to the given URI.- Parameters:
location
- the location URI- Returns:
- the created builder
-
badRequest
Create a builder with a 400 Bad Request status.- Returns:
- the created builder
-
notFound
Create a builder with a 404 Not Found status.- Returns:
- the created builder
-
unprocessableEntity
Create a builder with a 422 Unprocessable Entity status.- Returns:
- the created builder
-
async
Create a (built) response with the given asynchronous response. ParameterasyncResponse
can be aCompletableFuture<ServerResponse>
orPublisher<ServerResponse>
(or any asynchronous producer of a singleServerResponse
that can be adapted via theReactiveAdapterRegistry
).This method can be used to set the response status code, headers, and body based on an asynchronous result. If only the body is asynchronous,
ServerResponse.BodyBuilder.body(Object)
can be used instead.- Parameters:
asyncResponse
- aCompletableFuture<ServerResponse>
orPublisher<ServerResponse>
- Returns:
- the asynchronous response
- Since:
- 5.3
-
async
Create a (built) response with the given asynchronous response. ParameterasyncResponse
can be aCompletableFuture<ServerResponse>
orPublisher<ServerResponse>
(or any asynchronous producer of a singleServerResponse
that can be adapted via theReactiveAdapterRegistry
).This method can be used to set the response status code, headers, and body based on an asynchronous result. If only the body is asynchronous,
ServerResponse.BodyBuilder.body(Object)
can be used instead.- Parameters:
asyncResponse
- aCompletableFuture<ServerResponse>
orPublisher<ServerResponse>
timeout
- maximum time period to wait for before timing out- Returns:
- the asynchronous response
- Since:
- 5.3.2
-
sse
Create a server-sent event response. TheServerResponse.SseBuilder
provided toconsumer
can be used to build and send events.For example:
public ServerResponse handleSse(ServerRequest request) { return ServerResponse.sse(sse -> sse.send("Hello World!")); }
or, to set both the id and event type:
public ServerResponse handleSse(ServerRequest request) { return ServerResponse.sse(sse -> sse .id("42) .event("event") .send("Hello World!")); }
- Parameters:
consumer
- consumer that will be provided with an event builder- Returns:
- the server-side event response
- Since:
- 5.3.2
- See Also:
-
sse
Create a server-sent event response. TheServerResponse.SseBuilder
provided toconsumer
can be used to build and send events.For example:
public ServerResponse handleSse(ServerRequest request) { return ServerResponse.sse(sse -> sse.send("Hello World!")); }
or, to set both the id and event type:
public ServerResponse handleSse(ServerRequest request) { return ServerResponse.sse(sse -> sse .id("42) .event("event") .send("Hello World!")); }
- Parameters:
consumer
- consumer that will be provided with an event buildertimeout
- maximum time period to wait before timing out- Returns:
- the server-side event response
- Since:
- 5.3.2
- See Also:
-