Interface RouterFunction<T extends ServerResponse>
- Type Parameters:
T
- the type of the handler function to route to
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface RouterFunction<T extends ServerResponse>
Represents a function that routes to a handler function.- Since:
- 5.0
- Author:
- Arjen Poutsma
- See Also:
RouterFunctions
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default void
accept(RouterFunctions.Visitor visitor)
Accept the given visitor.default RouterFunction<T>
and(RouterFunction<T> other)
Return a composed routing function that first invokes this function, and then invokes theother
function (of the same response typeT
) if this route had no result.default RouterFunction<T>
andNest(RequestPredicate predicate, RouterFunction<T> routerFunction)
Return a composed routing function that routes to the given router function if this route does not match and the given request predicate applies.default RouterFunction<?>
andOther(RouterFunction<?> other)
Return a composed routing function that first invokes this function, and then invokes theother
function (of a different response type) if this route had no result.default RouterFunction<T>
andRoute(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
Return a composed routing function that routes to the given handler function if this route does not match and the given request predicate applies.default <S extends ServerResponse>
RouterFunction<S>filter(HandlerFilterFunction<T,S> filterFunction)
Filter all handler functions routed by this function with the given filter function.reactor.core.publisher.Mono<HandlerFunction<T>>
route(ServerRequest request)
Return the handler function that matches the given request.
Method Detail
route
reactor.core.publisher.Mono<HandlerFunction<T>> route(ServerRequest request)
Return the handler function that matches the given request.- Parameters:
request
- the request to route- Returns:
- an
Mono
describing theHandlerFunction
that matches this request, or an emptyMono
if there is no match
and
default RouterFunction<T> and(RouterFunction<T> other)
Return a composed routing function that first invokes this function, and then invokes theother
function (of the same response typeT
) if this route had no result.- Parameters:
other
- the function of typeT
to apply when this function has no result- Returns:
- a composed function that first routes with this function and then the
other
function if this function has no result - See Also:
andOther(RouterFunction)
andOther
default RouterFunction<?> andOther(RouterFunction<?> other)
Return a composed routing function that first invokes this function, and then invokes theother
function (of a different response type) if this route had no result.- Parameters:
other
- the function to apply when this function has no result- Returns:
- a composed function that first routes with this function and then the
other
function if this function has no result - See Also:
and(RouterFunction)
andRoute
default RouterFunction<T> andRoute(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
Return a composed routing function that routes to the given handler function if this route does not match and the given request predicate applies. This method is a convenient combination ofand(RouterFunction)
andRouterFunctions.route(RequestPredicate, HandlerFunction)
.- Parameters:
predicate
- the predicate to test if this route does not matchhandlerFunction
- the handler function to route to if this route does not match and the predicate applies- Returns:
- a composed function that route to
handlerFunction
if this route does not match and ifpredicate
applies
andNest
default RouterFunction<T> andNest(RequestPredicate predicate, RouterFunction<T> routerFunction)
Return a composed routing function that routes to the given router function if this route does not match and the given request predicate applies. This method is a convenient combination ofand(RouterFunction)
andRouterFunctions.nest(RequestPredicate, RouterFunction)
.- Parameters:
predicate
- the predicate to test if this route does not matchrouterFunction
- the router function to route to if this route does not match and the predicate applies- Returns:
- a composed function that route to
routerFunction
if this route does not match and ifpredicate
applies
filter
default <S extends ServerResponse> RouterFunction<S> filter(HandlerFilterFunction<T,S> filterFunction)
Filter all handler functions routed by this function with the given filter function.- Type Parameters:
S
- the filter return type- Parameters:
filterFunction
- the filter to apply- Returns:
- the filtered routing function
accept
default void accept(RouterFunctions.Visitor visitor)
Accept the given visitor. Default implementation callsRouterFunctions.Visitor.unknown(RouterFunction)
; composedRouterFunction
implementations are expected to callaccept
for all components that make up this router function.- Parameters:
visitor
- the visitor to accept