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 Object
implements VersionRouteMatchFilter
Implementation of
RouteMatchFilter responsible for filtering route matches on Version.- Since:
- 1.1.0
- Author:
- Bogdan Oros
-
Constructor Summary
ConstructorsConstructorDescriptionRouteVersionFilter(List<RequestVersionResolver> resolvingStrategies, @Nullable DefaultVersionProvider defaultVersionProvider) Deprecated.RouteVersionFilter(List<RequestVersionResolver> resolvingStrategies, @Nullable DefaultVersionProvider defaultVersionProvider, @Nullable RoutesVersioningConfiguration routesVersioningConfiguration, @Nullable HeaderVersionResolverConfiguration headerVersionResolverConfiguration) Creates aRouteVersionFilterwith a collection ofRequestVersionResolver. -
Method Summary
Modifier and TypeMethodDescription<T,R> Predicate<UriRouteMatch<T, R>> filter(HttpRequest<?> request) Filters route matches by specified version.getVersion(UriRouteMatch<T, R> routeMatch) protected booleanmatchIfRouteIsNotVersioned(@NonNull HttpRequest<?> request, @Nullable String version) protected booleanmatchIfRouteIsVersioned(@NonNull HttpRequest<?> request, @Nullable String resolvedVersion, @NonNull String routeVersion) resolveVersion(@NonNull HttpRequest<?> request)
-
Constructor Details
-
RouteVersionFilter
@Deprecated public RouteVersionFilter(List<RequestVersionResolver> resolvingStrategies, @Nullable @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(List<RequestVersionResolver> resolvingStrategies, @Nullable @Nullable DefaultVersionProvider defaultVersionProvider, @Nullable @Nullable RoutesVersioningConfiguration routesVersioningConfiguration, @Nullable @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 Details
-
filter
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 @NonNull HttpRequest<?> request, @Nullable @Nullable 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 @NonNull HttpRequest<?> request, @Nullable @Nullable String resolvedVersion, @NonNull @NonNull 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 specify by theVersionannotation.- Returns:
trueif the resolved version matches the route version or if the resolved version isnull
-
resolveVersion
@NonNull protected @NonNull Optional<String> resolveVersion(@NonNull @NonNull HttpRequest<?> request) - Parameters:
request- HTTP Request- Returns:
- the resolved requested version wrapped in an
Optional
-
getVersion
-
RouteVersionFilter(java.util.List<io.micronaut.web.router.version.resolution.RequestVersionResolver>,@io.micronaut.core.annotation.Nullable io.micronaut.web.router.version.DefaultVersionProvider,@io.micronaut.core.annotation.Nullable io.micronaut.web.router.version.RoutesVersioningConfiguration,@io.micronaut.core.annotation.Nullable io.micronaut.web.router.version.resolution.HeaderVersionResolverConfiguration)instead.