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.
Represents a function that routes to a handler function.
- Since:
- 5.0
- Author:
- Arjen Poutsma
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault 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.default RouterFunction<T>
withAttribute
(String name, Object value) Return a new routing function with the given attribute.default RouterFunction<T>
withAttributes
(Consumer<Map<String, Object>> attributesConsumer) Return a new routing function with attributes manipulated with the given consumer.
-
Method Details
-
route
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
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
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:
-
andRoute
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
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
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
-
withAttribute
Return a new routing function with the given attribute.- Parameters:
name
- the attribute namevalue
- the attribute value- Returns:
- a function that has the specified attributes
- Since:
- 5.3
-
withAttributes
Return a new routing function with attributes manipulated with the given consumer.The map provided to the consumer is "live", so that the consumer can be used to overwrite existing attributes, remove attributes, or use any of the other
Map
methods.- Parameters:
attributesConsumer
- a function that consumes the attributes map- Returns:
- this builder
- Since:
- 5.3
-