Class RouteVersionFilter

java.lang.Object
io.micronaut.web.router.version.RouteVersionFilter
All Implemented Interfaces:
RouteMatchFilter, VersionRouteMatchFilter

@Singleton @Requires(beans=RoutesVersioningConfiguration.class) public class RouteVersionFilter extends Object implements VersionRouteMatchFilter
Implementation of RouteMatchFilter responsible for filtering route matches on Version.
Since:
1.1.0
Author:
Bogdan Oros
  • Constructor Details

  • Method Details

    • filter

      public <T,R> Predicate<UriRouteMatch<T,R>> filter(HttpRequest<?> request)
      Filters route matches by specified version.
      Specified by:
      filter in interface RouteMatchFilter
      Type Parameters:
      T - The target type
      R - The return type
      Parameters:
      request - The HTTP request
      Returns:
      A filtered list of route matches
    • matchIfRouteIsNotVersioned

      protected boolean matchIfRouteIsNotVersioned(HttpRequest<?> request, @Nullable String version)
      Parameters:
      request - HTTP Request
      version - The version resolved evaluating the HTTP Request with beans of type RequestVersionResolver
      Returns:
      true if no version was resolved from the request
    • matchIfRouteIsVersioned

      protected boolean matchIfRouteIsVersioned(HttpRequest<?> request, @Nullable String resolvedVersion, String routeVersion)
      Parameters:
      request - HTTP Request
      resolvedVersion - The version resolved evaluating the HTTP Request with beans of type RequestVersionResolver and the RoutesVersioningConfiguration.getDefaultVersion().
      routeVersion - The route's version. For example, it could specify by the Version annotation.
      Returns:
      true if the resolved version matches the route version or if the resolved version is null
    • resolveVersion

      protected Optional<String> resolveVersion(HttpRequest<?> request)
      Parameters:
      request - HTTP Request
      Returns:
      the resolved requested version wrapped in an Optional
    • getVersion

      protected <T,R> Optional<String> getVersion(UriRouteMatch<T,R> routeMatch)
      Type Parameters:
      T - The target type
      R - The return type
      Parameters:
      routeMatch - the route match
      Returns:
      Returns the value of the annotation Version in the route method wrapped in an Optional.