Class PathApiVersionResolver

java.lang.Object
org.springframework.web.reactive.accept.PathApiVersionResolver
All Implemented Interfaces:
ApiVersionResolver

public class PathApiVersionResolver extends Object implements ApiVersionResolver
ApiVersionResolver that extract the version from a path segment.

If the resolver is created with a path index only, it will always return a version, or raise an InvalidApiVersionException, but never return null.

The resolver can also be created with an additional Predicate<RequestPath> that provides more flexibility in deciding whether a given path is versioned or not, possibly resolving to null.

Since:
7.0
Author:
Rossen Stoyanchev, Martin Mois
  • Constructor Details

    • PathApiVersionResolver

      public PathApiVersionResolver(int pathSegmentIndex)
      Create a resolver instance.
      Parameters:
      pathSegmentIndex - the index of the path segment that contains the API version
    • PathApiVersionResolver

      public PathApiVersionResolver(int pathSegmentIndex, Predicate<org.springframework.http.server.RequestPath> versionPathPredicate)
      Constructor variant of PathApiVersionResolver(int) with an additional Predicate<RequestPath> to help determine whether a given path is versioned (true) or not (false).
  • Method Details

    • resolveVersion

      public @Nullable String resolveVersion(org.springframework.web.server.ServerWebExchange exchange)
      Description copied from interface: ApiVersionResolver
      Resolve the version for the given exchange.

      Implementations of this method are expected to be non-blocking. If you need to resolve the version asynchronously, please implement the AsyncApiVersionResolver subinterface instead.

      Specified by:
      resolveVersion in interface ApiVersionResolver
      Parameters:
      exchange - the current exchange
      Returns:
      the version value, or null if not found