public interface ServerResponse
Modifier and Type | Interface and Description |
---|---|
static interface |
ServerResponse.BodyBuilder
Defines a builder that adds a body to the response.
|
static interface |
ServerResponse.Context
Defines the context used during the
writeTo(HttpServletRequest, HttpServletResponse, Context) . |
static interface |
ServerResponse.HeadersBuilder<B extends ServerResponse.HeadersBuilder<B>>
Defines a builder that adds headers to the response.
|
static interface |
ServerResponse.SseBuilder
Defines a builder for a body that sends server-sent events.
|
Modifier and Type | Method and Description |
---|---|
static ServerResponse.BodyBuilder |
accepted()
Create a builder with a 202 Accepted status.
|
static ServerResponse |
async(Object asyncResponse)
Create a (built) response with the given asynchronous response.
|
static ServerResponse |
async(Object asyncResponse,
Duration timeout)
Create a (built) response with the given asynchronous response.
|
static ServerResponse.BodyBuilder |
badRequest()
Create a builder with a 400 Bad Request status.
|
MultiValueMap<String,Cookie> |
cookies()
Return the cookies of this response.
|
static ServerResponse.BodyBuilder |
created(URI location)
Create a builder with a 201 Created status
and a location header set to the given URI.
|
static ServerResponse.BodyBuilder |
from(ServerResponse other)
Create a builder with the status code and headers of the given response.
|
HttpHeaders |
headers()
Return the headers of this response.
|
static ServerResponse.HeadersBuilder<?> |
noContent()
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.
|
int |
rawStatusCode()
Return the (potentially non-standard) status code of this response.
|
static ServerResponse.BodyBuilder |
seeOther(URI location)
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(HttpStatus status)
Create a builder with the given HTTP status.
|
static ServerResponse.BodyBuilder |
status(int status)
Create a builder with the given HTTP status.
|
HttpStatus |
statusCode()
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 |
unprocessableEntity()
Create a builder with a
422 Unprocessable Entity status.
|
ModelAndView |
writeTo(HttpServletRequest request,
HttpServletResponse response,
ServerResponse.Context context)
Write this response to the given servlet response.
|
HttpStatus statusCode()
IllegalArgumentException
- in case of an unknown HTTP status codeHttpStatus.valueOf(int)
int rawStatusCode()
statusCode()
,
HttpStatus.valueOf(int)
HttpHeaders headers()
MultiValueMap<String,Cookie> cookies()
@Nullable ModelAndView writeTo(HttpServletRequest request, HttpServletResponse response, ServerResponse.Context context) throws ServletException, IOException
request
- the current requestresponse
- the response to write tocontext
- the context to use when writingModelAndView
to render, or null
if handled directlyServletException
IOException
static ServerResponse.BodyBuilder from(ServerResponse other)
other
- the response to copy the status and headers fromstatic ServerResponse.BodyBuilder status(HttpStatus status)
status
- the response statusstatic ServerResponse.BodyBuilder status(int status)
status
- the response statusstatic ServerResponse.BodyBuilder ok()
static ServerResponse.BodyBuilder created(URI location)
location
- the location URIstatic ServerResponse.BodyBuilder accepted()
static ServerResponse.HeadersBuilder<?> noContent()
static ServerResponse.BodyBuilder seeOther(URI location)
location
- the location URIstatic ServerResponse.BodyBuilder temporaryRedirect(URI location)
location
- the location URIstatic ServerResponse.BodyBuilder permanentRedirect(URI location)
location
- the location URIstatic ServerResponse.BodyBuilder badRequest()
static ServerResponse.HeadersBuilder<?> notFound()
static ServerResponse.BodyBuilder unprocessableEntity()
static ServerResponse async(Object asyncResponse)
asyncResponse
can be a
CompletableFuture<ServerResponse>
or
Publisher<ServerResponse>
(or any
asynchronous producer of a single ServerResponse
that can be
adapted via the ReactiveAdapterRegistry
).
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.
asyncResponse
- a CompletableFuture<ServerResponse>
or
Publisher<ServerResponse>
static ServerResponse async(Object asyncResponse, Duration timeout)
asyncResponse
can be a
CompletableFuture<ServerResponse>
or
Publisher<ServerResponse>
(or any
asynchronous producer of a single ServerResponse
that can be
adapted via the ReactiveAdapterRegistry
).
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.
asyncResponse
- a CompletableFuture<ServerResponse>
or
Publisher<ServerResponse>
timeout
- maximum time period to wait for before timing outstatic ServerResponse sse(Consumer<ServerResponse.SseBuilder> consumer)
ServerResponse.SseBuilder
provided to
consumer
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!")); }
consumer
- consumer that will be provided with an event builderstatic ServerResponse sse(Consumer<ServerResponse.SseBuilder> consumer, Duration timeout)
ServerResponse.SseBuilder
provided to
consumer
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!")); }
consumer
- consumer that will be provided with an event buildertimeout
- maximum time period to wait before timing out