mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
Support for functional routing by API version
See gh-35113
This commit is contained in:
+23
-3
@@ -50,6 +50,7 @@ import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.reactive.accept.ApiVersionStrategy;
|
||||
import org.springframework.web.reactive.function.BodyExtractor;
|
||||
import org.springframework.web.reactive.function.server.HandlerStrategies;
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
@@ -94,6 +95,8 @@ public final class MockServerRequest implements ServerRequest {
|
||||
|
||||
private final List<HttpMessageReader<?>> messageReaders;
|
||||
|
||||
private final @Nullable ApiVersionStrategy versionStrategy;
|
||||
|
||||
private final @Nullable ServerWebExchange exchange;
|
||||
|
||||
|
||||
@@ -102,7 +105,8 @@ public final class MockServerRequest implements ServerRequest {
|
||||
Map<String, Object> attributes, MultiValueMap<String, String> queryParams,
|
||||
Map<String, String> pathVariables, @Nullable WebSession session, @Nullable Principal principal,
|
||||
@Nullable InetSocketAddress remoteAddress, @Nullable InetSocketAddress localAddress,
|
||||
List<HttpMessageReader<?>> messageReaders, @Nullable ServerWebExchange exchange) {
|
||||
List<HttpMessageReader<?>> messageReaders, @Nullable ApiVersionStrategy versionStrategy,
|
||||
@Nullable ServerWebExchange exchange) {
|
||||
|
||||
this.method = method;
|
||||
this.uri = uri;
|
||||
@@ -118,6 +122,7 @@ public final class MockServerRequest implements ServerRequest {
|
||||
this.remoteAddress = remoteAddress;
|
||||
this.localAddress = localAddress;
|
||||
this.messageReaders = messageReaders;
|
||||
this.versionStrategy = versionStrategy;
|
||||
this.exchange = exchange;
|
||||
}
|
||||
|
||||
@@ -167,6 +172,11 @@ public final class MockServerRequest implements ServerRequest {
|
||||
return this.messageReaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ApiVersionStrategy apiVersionStrategy() {
|
||||
return this.versionStrategy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public <S> S body(BodyExtractor<S, ? super ServerHttpRequest> extractor) {
|
||||
@@ -313,6 +323,8 @@ public final class MockServerRequest implements ServerRequest {
|
||||
|
||||
Builder messageReaders(List<HttpMessageReader<?>> messageReaders);
|
||||
|
||||
Builder apiVersionStrategy(@Nullable ApiVersionStrategy versionStrategy);
|
||||
|
||||
Builder exchange(ServerWebExchange exchange);
|
||||
|
||||
MockServerRequest body(Object body);
|
||||
@@ -351,6 +363,8 @@ public final class MockServerRequest implements ServerRequest {
|
||||
|
||||
private List<HttpMessageReader<?>> messageReaders = HandlerStrategies.withDefaults().messageReaders();
|
||||
|
||||
private @Nullable ApiVersionStrategy versionStrategy;
|
||||
|
||||
private @Nullable ServerWebExchange exchange;
|
||||
|
||||
@Override
|
||||
@@ -483,6 +497,12 @@ public final class MockServerRequest implements ServerRequest {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder apiVersionStrategy(@Nullable ApiVersionStrategy versionStrategy) {
|
||||
this.versionStrategy = versionStrategy;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder exchange(ServerWebExchange exchange) {
|
||||
Assert.notNull(exchange, "'exchange' must not be null");
|
||||
@@ -496,7 +516,7 @@ public final class MockServerRequest implements ServerRequest {
|
||||
return new MockServerRequest(this.method, this.uri, this.contextPath, this.headers,
|
||||
this.cookies, this.body, this.attributes, this.queryParams, this.pathVariables,
|
||||
this.session, this.principal, this.remoteAddress, this.localAddress,
|
||||
this.messageReaders, this.exchange);
|
||||
this.messageReaders, this.versionStrategy, this.exchange);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -504,7 +524,7 @@ public final class MockServerRequest implements ServerRequest {
|
||||
return new MockServerRequest(this.method, this.uri, this.contextPath, this.headers,
|
||||
this.cookies, null, this.attributes, this.queryParams, this.pathVariables,
|
||||
this.session, this.principal, this.remoteAddress, this.localAddress,
|
||||
this.messageReaders, this.exchange);
|
||||
this.messageReaders, this.versionStrategy, this.exchange);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user