Package io.micronaut.web.router
Class DefaultRouter
java.lang.Object
io.micronaut.web.router.DefaultRouter
- All Implemented Interfaces:
io.micronaut.http.filter.HttpFilterResolver<RouteMatch<?>>,io.micronaut.http.filter.HttpServerFilterResolver<RouteMatch<?>>,Router
@Singleton
public class DefaultRouter
extends Object
implements Router, io.micronaut.http.filter.HttpServerFilterResolver<RouteMatch<?>>
The default Router implementation. This implementation does not perform any additional caching of
route discovery.
- Since:
- 1.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micronaut.http.filter.HttpFilterResolver
io.micronaut.http.filter.HttpFilterResolver.FilterEntry -
Constructor Summary
ConstructorsConstructorDescriptionDefaultRouter(RouteBuilder... builders) Construct a new router for the given route builders.DefaultRouter(Collection<RouteBuilder> builders) Construct a new router for the given route builders. -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyDefaultPorts(List<Integer> ports) Sets the ports the application will listen to by default.<T,R> @NonNull Stream<UriRouteMatch<T, R>> find(@NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull CharSequence uri, @Nullable io.micronaut.http.HttpRequest<?> context) Finds all possible routes for the given HTTP method and URI.<T,R> @NonNull Stream<UriRouteMatch<T, R>> find(@NonNull io.micronaut.http.HttpRequest<?> request) Finds all possible routes for the given HTTP request.<T,R> @NonNull Stream<UriRouteMatch<T, R>> find(@NonNull io.micronaut.http.HttpRequest<?> request, @NonNull CharSequence uri) Find method, that should be used for non-standard http methods.<T,R> @NonNull List<UriRouteMatch<T, R>> findAllClosest(@NonNull io.micronaut.http.HttpRequest<?> request) Finds the closest match for the given request.<T,R> @NonNull Stream<UriRouteMatch<T, R>> findAny(@NonNull CharSequence uri, @Nullable io.micronaut.http.HttpRequest<?> request) Find anyRouteMatchregardless of HTTP method.<T,R> List<UriRouteMatch<T, R>> findAny(io.micronaut.http.HttpRequest<?> request) Find anyRouteMatchregardless of HTTP method.<R> Optional<RouteMatch<R>>findErrorRoute(@NonNull Class<?> originatingClass, @NonNull Throwable error, io.micronaut.http.HttpRequest<?> request) Match a route to an error.<R> Optional<RouteMatch<R>>findErrorRoute(@NonNull Throwable error, io.micronaut.http.HttpRequest<?> request) Match a route to an error.@NonNull List<io.micronaut.http.filter.GenericHttpFilter>findFilters(@NonNull io.micronaut.http.HttpRequest<?> request) Build a filteredPublisherfor an action.<R> Optional<RouteMatch<R>>findStatusRoute(int statusCode, io.micronaut.http.HttpRequest<?> request) Found aRouteMatchfor the given status code.<R> Optional<RouteMatch<R>>findStatusRoute(@NonNull io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request) Found aRouteMatchfor the givenHttpStatuscode.<R> Optional<RouteMatch<R>>findStatusRoute(@NonNull Class<?> originatingClass, @NonNull io.micronaut.http.HttpStatus status, io.micronaut.http.HttpRequest<?> request) Found aRouteMatchfor the givenHttpStatuscode.<R> Optional<RouteMatch<R>>findStatusRoute(Class<?> originatingClass, int statusCode, io.micronaut.http.HttpRequest<?> request) Found aRouteMatchfor the given status code.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry>resolveFilterEntries(RouteMatch<?> routeMatch) List<io.micronaut.http.filter.GenericHttpFilter>resolveFilters(io.micronaut.http.HttpRequest<?> request, List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> filterEntries) <T,R> @NonNull Optional<UriRouteMatch<T, R>> route(@NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull CharSequence uri) Finds the first possible route for the given HTTP method and URI.<R> Optional<RouteMatch<R>>route(@NonNull io.micronaut.http.HttpStatus status) Found aRouteMatchfor the givenHttpStatuscode.<R> Optional<RouteMatch<R>>Found aRouteMatchfor the givenHttpStatuscode.<R> Optional<RouteMatch<R>>Match a route to an error.<R> Optional<RouteMatch<R>>Match a route to an error.@NonNull Stream<UriRouteInfo<?,?>> Returns all UriRoutes.
-
Constructor Details
-
DefaultRouter
Construct a new router for the given route builders.- Parameters:
builders- The builders
-
DefaultRouter
Construct a new router for the given route builders.- Parameters:
builders- The builders
-
-
Method Details
-
getExposedPorts
- Specified by:
getExposedPortsin interfaceRouter- Returns:
- The exposed ports.
-
applyDefaultPorts
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> @NonNull Stream<UriRouteMatch<T,R>> find(@NonNull @NonNull io.micronaut.http.HttpRequest<?> request, @NonNull @NonNull 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> @NonNull Stream<UriRouteMatch<T,R>> find(@NonNull @NonNull io.micronaut.http.HttpRequest<?> request) Description copied from interface:RouterFinds all possible routes for the given HTTP request. -
find
@NonNull public <T,R> @NonNull Stream<UriRouteMatch<T,R>> find(@NonNull @NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull @NonNull CharSequence uri, @Nullable @Nullable io.micronaut.http.HttpRequest<?> context) Description copied from interface:RouterFinds all 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
Description copied from interface:RouterReturns all UriRoutes. -
findAllClosest
@NonNull public <T,R> @NonNull List<UriRouteMatch<T,R>> findAllClosest(@NonNull @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> @NonNull Optional<UriRouteMatch<T,R>> route(@NonNull @NonNull io.micronaut.http.HttpMethod httpMethod, @NonNull @NonNull CharSequence uri) Description copied from interface:RouterFinds the first possible route for the given HTTP method and URI. -
route
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> Optional<RouteMatch<R>> route(@NonNull @NonNull Class<?> originatingClass, @NonNull @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> Optional<RouteMatch<R>> route(@NonNull @NonNull Class<?> originatingClass, @NonNull @NonNull 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> Optional<RouteMatch<R>> findErrorRoute(@NonNull @NonNull Class<?> originatingClass, @NonNull @NonNull 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> Optional<RouteMatch<R>> findErrorRoute(@NonNull @NonNull 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> Optional<RouteMatch<R>> findStatusRoute(@NonNull @NonNull Class<?> originatingClass, @NonNull @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> Optional<RouteMatch<R>> findStatusRoute(@NonNull @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
-
findStatusRoute
public <R> Optional<RouteMatch<R>> findStatusRoute(Class<?> originatingClass, int statusCode, io.micronaut.http.HttpRequest<?> request) Description copied from interface:RouterFound aRouteMatchfor the given status code.- Specified by:
findStatusRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
originatingClass- The class the error originates fromstatusCode- The HTTP statusrequest- The request- Returns:
- The
RouteMatch
-
findStatusRoute
public <R> Optional<RouteMatch<R>> findStatusRoute(int statusCode, io.micronaut.http.HttpRequest<?> request) Description copied from interface:RouterFound aRouteMatchfor the given status code.- Specified by:
findStatusRoutein interfaceRouter- Type Parameters:
R- The matched route- Parameters:
statusCode- The HTTP status coderequest- The request- Returns:
- The
RouteMatch
-
route
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 @NonNull List<io.micronaut.http.filter.GenericHttpFilter> findFilters(@NonNull @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> @NonNull Stream<UriRouteMatch<T,R>> findAny(@NonNull @NonNull CharSequence uri, @Nullable @Nullable io.micronaut.http.HttpRequest<?> request) 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 URIrequest- The optionalHttpRequestcontext information to applyRouteMatchFilter.- Returns:
- A stream of route matches
-
findAny
Description copied from interface:RouterFind anyRouteMatchregardless of HTTP method. -
resolveFilterEntries
public List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> resolveFilterEntries(RouteMatch<?> routeMatch) - Specified by:
resolveFilterEntriesin interfaceio.micronaut.http.filter.HttpFilterResolver<RouteMatch<?>>
-
resolveFilters
public List<io.micronaut.http.filter.GenericHttpFilter> resolveFilters(io.micronaut.http.HttpRequest<?> request, List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> filterEntries) - Specified by:
resolveFiltersin interfaceio.micronaut.http.filter.HttpFilterResolver<RouteMatch<?>>
-