From 3c26e7f0146f59fc4db76d1b24fbc4e9c197df6e Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Mon, 13 Mar 2017 11:32:49 +0100 Subject: [PATCH] Add seeOther shortcut to ServerResponse.BodyBuilder --- .../web/reactive/function/server/ServerResponse.java | 11 +++++++++++ .../server/DefaultServerResponseBuilderTests.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerResponse.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerResponse.java index 33744f9136f..cf1764a2da1 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerResponse.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerResponse.java @@ -128,6 +128,17 @@ public interface ServerResponse { return status(HttpStatus.NO_CONTENT); } + /** + * Create a builder with a {@linkplain HttpStatus#SEE_OTHER 303 See Other} + * status and a location header set to the given URI. + * @param location the location URI + * @return the created builder + */ + static BodyBuilder seeOther(URI location) { + BodyBuilder builder = status(HttpStatus.SEE_OTHER); + return builder.location(location); + } + /** * Create a builder with a {@linkplain HttpStatus#TEMPORARY_REDIRECT 307 Temporary Redirect} * status and a location header set to the given URI. diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java index 37d6230d096..a0dcbce0aed 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java @@ -105,6 +105,17 @@ public class DefaultServerResponseBuilderTests { } + @Test + public void seeOther() throws Exception { + URI location = URI.create("http://example.com"); + Mono result = ServerResponse.seeOther(location).build(); + StepVerifier.create(result) + .expectNextMatches(response -> HttpStatus.SEE_OTHER.equals(response.statusCode()) && + location.equals(response.headers().getLocation())) + .expectComplete() + .verify(); + } + @Test public void temporaryRedirect() throws Exception { URI location = URI.create("http://example.com");