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 TypeMethodDescriptionvoidaddSupportedVersion(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()voidvalidateVersion(@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 adefaultVersionis not specified, validation fails withMissingApiVersionExceptiondefaultVersion- a default version to assign to requests that don't specify one
-
-
Method Details
-
getDefaultVersion
Description copied from interface:ApiVersionStrategyReturn a default version to use for requests that don't specify one.- Specified by:
getDefaultVersionin 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 inInvalidApiVersionExceptioninApiVersionStrategy.validateVersion(java.lang.Comparable<?>, org.springframework.web.server.ServerWebExchange).- Parameters:
versions- the versions to add
-
resolveVersion
Description copied from interface:ApiVersionStrategyResolve the version value from a request, e.g. from a request header.- Specified by:
resolveVersionin interfaceApiVersionStrategy- Parameters:
exchange- the current exchange- Returns:
- the version, if present or
null
-
parseVersion
Description copied from interface:ApiVersionStrategyParse the version of a request into an Object.- Specified by:
parseVersionin 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:ApiVersionStrategyValidate a request version, including required and supported version checks.- Specified by:
validateVersionin 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
-