Package io.micronaut.web.router.version
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 java.lang.Object implements VersionRouteMatchFilter
Implementation ofRouteMatchFilterresponsible for filtering route matches onVersion.- Since:
- 1.1.0
-
-
Constructor Summary
Constructors Constructor Description RouteVersionFilter(java.util.List<RequestVersionResolver> resolvingStrategies, DefaultVersionProvider defaultVersionProvider)RouteVersionFilter(java.util.List<RequestVersionResolver> resolvingStrategies, DefaultVersionProvider defaultVersionProvider, RoutesVersioningConfiguration routesVersioningConfiguration, HeaderVersionResolverConfiguration headerVersionResolverConfiguration)Creates aRouteVersionFilterwith a collection ofRequestVersionResolver.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T,R>
java.util.function.Predicate<UriRouteMatch<T,R>>filter(io.micronaut.http.HttpRequest<?> request)Filters route matches by specified version.protected <T,R>
java.util.Optional<java.lang.String>getVersion(UriRouteMatch<T,R> routeMatch)protected booleanmatchIfRouteIsNotVersioned(io.micronaut.http.HttpRequest<?> request, java.lang.String version)protected booleanmatchIfRouteIsVersioned(io.micronaut.http.HttpRequest<?> request, java.lang.String resolvedVersion, java.lang.String routeVersion)protected java.util.Optional<java.lang.String>resolveVersion(io.micronaut.http.HttpRequest<?> request)
-
-
-
Constructor Detail
-
RouteVersionFilter
@Deprecated public RouteVersionFilter(java.util.List<RequestVersionResolver> resolvingStrategies, @Nullable DefaultVersionProvider defaultVersionProvider)
Creates aRouteVersionFilterwith a collection ofRequestVersionResolver.- Parameters:
resolvingStrategies- A list ofRequestVersionResolverbeans to extract version from HTTP requestdefaultVersionProvider- The Default Version Provider
-
RouteVersionFilter
@Inject public RouteVersionFilter(java.util.List<RequestVersionResolver> resolvingStrategies, @Nullable DefaultVersionProvider defaultVersionProvider, @Nullable RoutesVersioningConfiguration routesVersioningConfiguration, @Nullable HeaderVersionResolverConfiguration headerVersionResolverConfiguration)
Creates aRouteVersionFilterwith a collection ofRequestVersionResolver.- Parameters:
resolvingStrategies- A list ofRequestVersionResolverbeans to extract version from HTTP requestdefaultVersionProvider- The Default Version ProviderroutesVersioningConfiguration- Configuration for routes versioningheaderVersionResolverConfiguration- Configuration for Header Version resolution
-
-
Method Detail
-
filter
public <T,R> java.util.function.Predicate<UriRouteMatch<T,R>> filter(io.micronaut.http.HttpRequest<?> request)
Filters route matches by specified version.- Specified by:
filterin interfaceRouteMatchFilter- Type Parameters:
T- The target typeR- The return type- Parameters:
request- The HTTP request- Returns:
- A filtered list of route matches
-
matchIfRouteIsNotVersioned
protected boolean matchIfRouteIsNotVersioned(@NonNull io.micronaut.http.HttpRequest<?> request, @Nullable java.lang.String version)- Parameters:
request- HTTP Requestversion- The version resolved evaluating the HTTP Request with beans of typeRequestVersionResolver- Returns:
trueif no version was resolved from the request
-
matchIfRouteIsVersioned
protected boolean matchIfRouteIsVersioned(@NonNull io.micronaut.http.HttpRequest<?> request, @Nullable java.lang.String resolvedVersion, @NonNull java.lang.String routeVersion)- Parameters:
request- HTTP RequestresolvedVersion- The version resolved evaluating the HTTP Request with beans of typeRequestVersionResolverand theRoutesVersioningConfiguration.getDefaultVersion().routeVersion- The route's version. For example, it could specified by theVersionannotation.- Returns:
trueif the resolved version matches the route version or if the resolved version isnull
-
resolveVersion
@NonNull protected java.util.Optional<java.lang.String> resolveVersion(@NonNull io.micronaut.http.HttpRequest<?> request)- Parameters:
request- HTTP Request- Returns:
- the resolved requested version wrapped in an
Optional
-
getVersion
protected <T,R> java.util.Optional<java.lang.String> getVersion(UriRouteMatch<T,R> routeMatch)
- Type Parameters:
T- The target typeR- The return type- Parameters:
routeMatch-- Returns:
- Returns the value of the annotation
Versionin the route method wrapped in anOptional.
-
-