Class DefaultApiVersionStrategy
java.lang.Object
org.springframework.web.reactive.accept.DefaultApiVersionStrategy
- All Implemented Interfaces:
ApiVersionStrategy
Default implementation of
ApiVersionStrategy
that delegates to the
configured version resolvers and version parser.- Since:
- 7.0
- Author:
- Rossen Stoyanchev
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultApiVersionStrategy
(List<ApiVersionResolver> versionResolvers, ApiVersionParser<?> versionParser, boolean versionRequired, @Nullable String defaultVersion) Create an instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSupportedVersion
(String... versions) Add to the list of known, supported versions to check against inApiVersionStrategy.validateVersion(java.lang.Comparable<?>, org.springframework.web.server.ServerWebExchange)
.Return a default version to use for requests that don't specify one.Comparable<?>
parseVersion
(String version) Parse the version of a request into an Object.resolveVersion
(ServerWebExchange exchange) Resolve the version value from a request, e.g.toString()
void
validateVersion
(@Nullable Comparable<?> requestVersion, ServerWebExchange exchange) Validate a request version, including required and supported version checks.
-
Constructor Details
-
DefaultApiVersionStrategy
public DefaultApiVersionStrategy(List<ApiVersionResolver> versionResolvers, ApiVersionParser<?> versionParser, boolean versionRequired, @Nullable String defaultVersion) Create an instance.- Parameters:
versionResolvers
- one or more resolvers to try; the first non-null value returned by any resolver becomes the resolved usedversionParser
- parser for to raw version valuesversionRequired
- whether a version is required; if a request does not have a version, and adefaultVersion
is not specified, validation fails withMissingApiVersionException
defaultVersion
- a default version to assign to requests that don't specify one
-
-
Method Details
-
getDefaultVersion
Description copied from interface:ApiVersionStrategy
Return a default version to use for requests that don't specify one.- Specified by:
getDefaultVersion
in interfaceApiVersionStrategy
-
addSupportedVersion
Add to the list of known, supported versions to check against inApiVersionStrategy.validateVersion(java.lang.Comparable<?>, org.springframework.web.server.ServerWebExchange)
. Request versions that are not in the supported result inInvalidApiVersionException
inApiVersionStrategy.validateVersion(java.lang.Comparable<?>, org.springframework.web.server.ServerWebExchange)
.- Parameters:
versions
- the versions to add
-
resolveVersion
Description copied from interface:ApiVersionStrategy
Resolve the version value from a request, e.g. from a request header.- Specified by:
resolveVersion
in interfaceApiVersionStrategy
- Parameters:
exchange
- the current exchange- Returns:
- the version, if present or
null
-
parseVersion
Description copied from interface:ApiVersionStrategy
Parse the version of a request into an Object.- Specified by:
parseVersion
in interfaceApiVersionStrategy
- Parameters:
version
- the value to parse- Returns:
- an Object that represents the version
-
validateVersion
public void validateVersion(@Nullable Comparable<?> requestVersion, ServerWebExchange exchange) throws MissingApiVersionException, InvalidApiVersionException Description copied from interface:ApiVersionStrategy
Validate a request version, including required and supported version checks.- Specified by:
validateVersion
in interfaceApiVersionStrategy
- Parameters:
requestVersion
- the version to validateexchange
- the exchange- Throws:
MissingApiVersionException
- if the version is required, but not specifiedInvalidApiVersionException
- if the version is not supported
-
toString
-