Package io.micronaut.web.router
Class DefaultRouter
- java.lang.Object
-
- io.micronaut.web.router.DefaultRouter
-
- All Implemented Interfaces:
io.micronaut.http.filter.HttpFilterResolver<io.micronaut.http.filter.HttpFilter,RouteMatch<?>>,io.micronaut.http.filter.HttpServerFilterResolver<RouteMatch<?>>,Router
@Singleton public class DefaultRouter extends java.lang.Object implements Router, io.micronaut.http.filter.HttpServerFilterResolver<RouteMatch<?>>
The default
Routerimplementation. This implementation does not perform any additional caching of route discovery.- Since:
- 1.0
-
-
Constructor Summary
Constructors Constructor Description DefaultRouter(RouteBuilder... builders)Construct a new router for the given route builders.DefaultRouter(java.util.Collection<RouteBuilder> builders)Construct a new router for the given route builders.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapplyDefaultPorts(java.util.List<java.lang.Integer> ports)Sets the ports the application will listen to by default.<T,R>
java.util.stream.Stream<UriRouteMatch<T,R>>find(io.micronaut.http.HttpMethod httpMethod, java.lang.CharSequence uri, io.micronaut.http.HttpRequest<?> context)Finds all of the possible routes for the given HTTP method and URI.<T,R>
java.util.stream.Stream<UriRouteMatch<T,R>>find(io.micronaut.http.HttpRequest<?> request)Finds all of the possible routes for the given HTTP request.<T,R>
java.util.stream.Stream<UriRouteMatch<T,R>>find(io.micronaut.http.HttpRequest<?> request, java.lang.CharSequence uri)Find method, that should be used for non-standard http methods.<T,R>
java.util.List<UriRouteMatch<T,R>>findAllClosest(io.micronaut.http.HttpRequest<?> request)Finds the closest match for the given request.<T,R>
java.util.stream.Stream<UriRouteMatch<T,R>>findAny(java.lang.CharSequence uri, io.micronaut.http.HttpRequest<?> context)Find anyRouteMatchregardless of HTTP method.<R> java.util.Optional<RouteMatch<R>>findErrorRoute(java.lang.Class<?> originatingClass, java.lang.Throwable error, io.micronaut.http.HttpRequest<?> request)Match a route to an error.<R> java.util.Optional<RouteMatch<R>>findErrorRoute(java.lang.Throwable error, io.micronaut.http.HttpRequest<?> request)Match a route to an error.java.util.List<io.micronaut.http.filter.HttpFilter>findFilters(io.micronaut.http.HttpRequest<?> request)Build a filteredPublisherfor an action.<R> java.util.Optional<RouteMatch<R>>findStatusRoute(io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request)Found aRouteMatchfor the givenHttpStatuscode.<R> java.util.Optional<RouteMatch<R>>findStatusRoute(java.lang.Class<?> originatingClass, io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request)Found aRouteMatchfor the givenHttpStatuscode.java.util.Set<java.lang.Integer>getExposedPorts()java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpFilter>>resolveFilterEntries(RouteMatch<?> routeMatch)java.util.List<io.micronaut.http.filter.HttpFilter>resolveFilters(io.micronaut.http.HttpRequest<?> request, java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpFilter>> filterEntries)<T,R>
java.util.Optional<UriRouteMatch<T,R>>route(io.micronaut.http.HttpMethod httpMethod, java.lang.CharSequence uri)Finds the first possible route for the given HTTP method and URI.<R> java.util.Optional<RouteMatch<R>>route(io.micronaut.http.HttpStatus status)Found aRouteMatchfor the givenHttpStatuscode.<R> java.util.Optional<RouteMatch<R>>route(java.lang.Class originatingClass, io.micronaut.http.HttpStatus status)Found aRouteMatchfor the givenHttpStatuscode.<R> java.util.Optional<RouteMatch<R>>route(java.lang.Class originatingClass, java.lang.Throwable error)Match a route to an error.<R> java.util.Optional<RouteMatch<R>>route(java.lang.Throwable error)Match a route to an error.java.util.stream.Stream<UriRoute>uriRoutes()Returns all UriRoutes.
-
-
-
Constructor Detail
-
DefaultRouter
public DefaultRouter(RouteBuilder... builders)
Construct a new router for the given route builders.- Parameters:
builders- The builders
-
DefaultRouter
@Inject public DefaultRouter(java.util.Collection<RouteBuilder> builders)
Construct a new router for the given route builders.- Parameters:
builders- The builders
-
-
Method Detail
-
getExposedPorts
public java.util.Set<java.lang.Integer> getExposedPorts()
- Specified by:
getExposedPortsin interfaceRouter- Returns:
- The exposed ports.
-
applyDefaultPorts
public void applyDefaultPorts(java.util.List<java.lang.Integer> ports)
Description copied from interface:RouterSets the ports the application will listen to by default.- Specified by:
applyDefaultPortsin interfaceRouter- Parameters:
ports- The default ports
-
find
@NonNull public <T,R> java.util.stream.Stream<UriRouteMatch<T,R>> find(@NonNull io.micronaut.http.HttpRequest<?> request, @NonNull java.lang.CharSequence uri)
Description copied from interface:RouterFind method, that should be used for non-standard http methods. For standards it should act the same asRouter.find(HttpMethod, CharSequence, HttpRequest)
-
find
@NonNull public <T,R> java.util.stream.Stream<UriRouteMatch<T,R>> find(@NonNull io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterFinds all of the possible routes for the given HTTP request.
-
find
@NonNull public <T,R> java.util.stream.Stream<UriRouteMatch<T,R>> find(@NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull java.lang.CharSequence uri, @Nullable io.micronaut.http.HttpRequest<?> context)
Description copied from interface:RouterFinds all of the possible routes for the given HTTP method and URI.- Specified by:
findin interfaceRouter- Type Parameters:
T- The target typeR- The type- Parameters:
httpMethod- The HTTP methoduri- The URI route matchcontext- The optionalHttpRequestcontext information to applyRouteMatchFilter.- Returns:
- A
Streamof possibleRouteinstances.
-
uriRoutes
@NonNull public java.util.stream.Stream<UriRoute> uriRoutes()
Description copied from interface:RouterReturns all UriRoutes.
-
findAllClosest
@NonNull public <T,R> java.util.List<UriRouteMatch<T,R>> findAllClosest(@NonNull io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterFinds the closest match for the given request.- Specified by:
findAllClosestin interfaceRouter- Type Parameters:
T- The target typeR- The type- Parameters:
request- The request- Returns:
- A
Listof possibleRouteinstances.
-
route
@NonNull public <T,R> java.util.Optional<UriRouteMatch<T,R>> route(@NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull java.lang.CharSequence uri)
Description copied from interface:RouterFinds the first possible route for the given HTTP method and URI.
-
route
public <R> java.util.Optional<RouteMatch<R>> route(@NonNull io.micronaut.http.HttpStatus status)
Description copied from interface:RouterFound aRouteMatchfor the givenHttpStatuscode.- Specified by:
routein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
status- The HTTP status- Returns:
- The
RouteMatch
-
route
public <R> java.util.Optional<RouteMatch<R>> route(@NonNull java.lang.Class originatingClass, @NonNull io.micronaut.http.HttpStatus status)
Description copied from interface:RouterFound aRouteMatchfor the givenHttpStatuscode.- Specified by:
routein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
originatingClass- The class the error originates fromstatus- The HTTP status- Returns:
- The
RouteMatch
-
route
public <R> java.util.Optional<RouteMatch<R>> route(@NonNull java.lang.Class originatingClass, @NonNull java.lang.Throwable error)
Description copied from interface:RouterMatch a route to an error.- Specified by:
routein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
originatingClass- The class the error originates fromerror- The error- Returns:
- The
RouteMatch
-
findErrorRoute
public <R> java.util.Optional<RouteMatch<R>> findErrorRoute(@NonNull java.lang.Class<?> originatingClass, @NonNull java.lang.Throwable error, io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterMatch a route to an error.- Specified by:
findErrorRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
originatingClass- The class the error originates fromerror- The errorrequest- The request- Returns:
- The
RouteMatch
-
findErrorRoute
public <R> java.util.Optional<RouteMatch<R>> findErrorRoute(@NonNull java.lang.Throwable error, io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterMatch a route to an error.- Specified by:
findErrorRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
error- The errorrequest- The request- Returns:
- The
RouteMatch
-
findStatusRoute
public <R> java.util.Optional<RouteMatch<R>> findStatusRoute(@NonNull java.lang.Class<?> originatingClass, @NonNull io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterFound aRouteMatchfor the givenHttpStatuscode.- Specified by:
findStatusRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
originatingClass- The class the error originates fromstatus- The HTTP statusrequest- The request- Returns:
- The
RouteMatch
-
findStatusRoute
public <R> java.util.Optional<RouteMatch<R>> findStatusRoute(@NonNull io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request)
Description copied from interface:RouterFound aRouteMatchfor the givenHttpStatuscode.- Specified by:
findStatusRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
status- The HTTP statusrequest- The request- Returns:
- The
RouteMatch
-
route
public <R> java.util.Optional<RouteMatch<R>> route(@NonNull java.lang.Throwable error)
Description copied from interface:RouterMatch a route to an error.- Specified by:
routein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
error- The error- Returns:
- The
RouteMatch
-
findFilters
@NonNull public java.util.List<io.micronaut.http.filter.HttpFilter> findFilters(@NonNull io.micronaut.http.HttpRequest<?> request)Description copied from interface:RouterBuild a filteredPublisherfor an action.- Specified by:
findFiltersin interfaceRouter- Parameters:
request- The request- Returns:
- A new filtered publisher
-
findAny
@NonNull public <T,R> java.util.stream.Stream<UriRouteMatch<T,R>> findAny(@NonNull java.lang.CharSequence uri, @Nullable io.micronaut.http.HttpRequest<?> context)
Description copied from interface:RouterFind anyRouteMatchregardless of HTTP method.- Specified by:
findAnyin interfaceRouter- Type Parameters:
T- The target typeR- The return type- Parameters:
uri- The URIcontext- The optionalHttpRequestcontext information to applyRouteMatchFilter.- Returns:
- A stream of route matches
-
resolveFilterEntries
public java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpFilter>> resolveFilterEntries(RouteMatch<?> routeMatch)
- Specified by:
resolveFilterEntriesin interfaceio.micronaut.http.filter.HttpFilterResolver<io.micronaut.http.filter.HttpFilter,RouteMatch<?>>
-
resolveFilters
public java.util.List<io.micronaut.http.filter.HttpFilter> resolveFilters(io.micronaut.http.HttpRequest<?> request, java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpFilter>> filterEntries)- Specified by:
resolveFiltersin interfaceio.micronaut.http.filter.HttpFilterResolver<io.micronaut.http.filter.HttpFilter,RouteMatch<?>>
-
-