Class ApiVersionConfigurer

java.lang.Object
org.springframework.web.reactive.config.ApiVersionConfigurer

public class ApiVersionConfigurer extends Object
Configure API versioning.
Since:
7.0
Author:
Rossen Stoyanchev
  • Constructor Details

    • ApiVersionConfigurer

      public ApiVersionConfigurer()
  • Method Details

    • useRequestHeader

      public ApiVersionConfigurer useRequestHeader(String headerName)
      Add a resolver that extracts the API version from a request header.
      Parameters:
      headerName - the header name to check
    • useRequestParam

      public ApiVersionConfigurer useRequestParam(String paramName)
      Add a resolver that extracts the API version from a request parameter.
      Parameters:
      paramName - the parameter name to check
    • usePathSegment

      public ApiVersionConfigurer usePathSegment(int index)
      Add a resolver that extracts the API version from a path segment.
      Parameters:
      index - the index of the path segment to check; e.g. for URL's like "/{version}/..." use index 0, for "/api/{version}/..." index 1.
    • useVersionResolver

      public ApiVersionConfigurer useVersionResolver(ApiVersionResolver... resolvers)
      Add custom resolvers to resolve the API version.
      Parameters:
      resolvers - the resolvers to use
    • setVersionParser

      public ApiVersionConfigurer setVersionParser(@Nullable ApiVersionParser<?> versionParser)
      Configure a parser to parse API versions with.

      By default, SemanticApiVersionParser is used.

      Parameters:
      versionParser - the parser to user
    • setVersionRequired

      public ApiVersionConfigurer setVersionRequired(boolean required)
      Whether requests are required to have an API version. When set to true, MissingApiVersionException is raised, resulting in a 400 response if the request doesn't have an API version. When set to false, a request without a version is considered to accept any version.

      By default, this is set to true when API versioning is enabled by adding at least one ApiVersionResolver). When a defaultVersion is also set, this is automatically set to false.

      Parameters:
      required - whether an API version is required.
    • setDefaultVersion

      public ApiVersionConfigurer setDefaultVersion(@Nullable String defaultVersion)
      Configure a default version to assign to requests that don't specify one.
      Parameters:
      defaultVersion - the default version to use
    • addSupportedVersions

      public ApiVersionConfigurer addSupportedVersions(String... versions)
      Add to the list of supported versions to validate request versions against. Request versions that are not supported result in InvalidApiVersionException.

      Note that the set of supported versions is populated from versions listed in controller mappings. Therefore, typically you do not have to manage this list except for the initial API version, when controller don't have to have a version to start.

      Parameters:
      versions - supported versions to add
    • getApiVersionStrategy

      protected @Nullable ApiVersionStrategy getApiVersionStrategy()