ParameterContentNegotiationStrategy uses MediaTypeFactory
Issue: SPR-15649
This commit is contained in:
@@ -30,16 +30,15 @@ import org.springframework.lang.Nullable;
|
||||
|
||||
/**
|
||||
* Builder for a composite {@link RequestedContentTypeResolver} that delegates
|
||||
* to one or more other resolvers each implementing a different strategy to
|
||||
* determine the requested content type(s), e.g. from the Accept header,
|
||||
* through a query parameter, or other custom strategy.
|
||||
* to other resolvers each implementing a different strategy to determine the
|
||||
* requested content type -- e.g. Accept header, query parameter, or other.
|
||||
*
|
||||
* <p>Use methods of this builder to add resolvers in the desired order.
|
||||
* The result of the first resolver to return a non-empty list of media types
|
||||
* is used.
|
||||
* <p>Use builder methods to add resolvers in the desired order. For a given
|
||||
* request he first resolver to return a list that is not empty and does not
|
||||
* consist of just {@link MediaType#ALL}, will be used.
|
||||
*
|
||||
* <p>If no resolvers are configured, by default the builder will configure
|
||||
* {@link HeaderContentTypeResolver} only.
|
||||
* <p>By default, if no resolvers are explicitly configured, the builder will
|
||||
* add {@link HeaderContentTypeResolver}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @since 5.0
|
||||
@@ -50,8 +49,8 @@ public class RequestedContentTypeResolverBuilder {
|
||||
|
||||
|
||||
/**
|
||||
* Add resolver extracting the requested content type from a query parameter.
|
||||
* By default the expected query parameter name is {@code "format"}.
|
||||
* Add a resolver to get the requested content type from a query parameter.
|
||||
* By default the query parameter name is {@code "format"}.
|
||||
*/
|
||||
public ParameterResolverConfigurer parameterResolver() {
|
||||
ParameterResolverConfigurer parameterBuilder = new ParameterResolverConfigurer();
|
||||
@@ -60,7 +59,7 @@ public class RequestedContentTypeResolverBuilder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add resolver extracting the requested content type from the
|
||||
* Add resolver to get the requested content type from the
|
||||
* {@literal "Accept"} header.
|
||||
*/
|
||||
public void headerResolver() {
|
||||
@@ -68,7 +67,7 @@ public class RequestedContentTypeResolverBuilder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add resolver that always returns a fixed set of media types.
|
||||
* Add resolver that returns a fixed set of media types.
|
||||
* @param mediaTypes the media types to use
|
||||
*/
|
||||
public void fixedResolver(MediaType... mediaTypes) {
|
||||
@@ -108,7 +107,7 @@ public class RequestedContentTypeResolverBuilder {
|
||||
|
||||
|
||||
/**
|
||||
* Helps to create a {@link ParameterContentTypeResolver}.
|
||||
* Helper to create and configure {@link ParameterContentTypeResolver}.
|
||||
*/
|
||||
public static class ParameterResolverConfigurer {
|
||||
|
||||
@@ -146,7 +145,10 @@ public class RequestedContentTypeResolverBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
RequestedContentTypeResolver createResolver() {
|
||||
/**
|
||||
* Private factory method to create the resolver.
|
||||
*/
|
||||
private RequestedContentTypeResolver createResolver() {
|
||||
ParameterContentTypeResolver resolver = new ParameterContentTypeResolver(this.mediaTypes);
|
||||
if (this.parameterName != null) {
|
||||
resolver.setParameterName(this.parameterName);
|
||||
|
||||
Reference in New Issue
Block a user