public static interface RouterFunctions.Builder
RouterFunctions.route().| Modifier and Type | Method and Description | 
|---|---|
| RouterFunctions.Builder | add(RouterFunction<ServerResponse> routerFunction)Adds the given route to this builder. | 
| RouterFunctions.Builder | after(BiFunction<ServerRequest,ServerResponse,ServerResponse> responseProcessor)Filter the response object for all routes created by this builder with the given response
 processing function. | 
| RouterFunctions.Builder | before(Function<ServerRequest,ServerRequest> requestProcessor)Filter the request object for all routes created by this builder with the given request
 processing function. | 
| RouterFunction<ServerResponse> | build()Builds the  RouterFunction. | 
| RouterFunctions.Builder | DELETE(String pattern,
      HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  DELETErequests
 that match the given pattern. | 
| RouterFunctions.Builder | DELETE(String pattern,
      RequestPredicate predicate,
      HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  DELETErequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | filter(HandlerFilterFunction<ServerResponse,ServerResponse> filterFunction)Filters all routes created by this builder with the given filter function. | 
| RouterFunctions.Builder | GET(String pattern,
   HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  GETrequests
 that match the given pattern. | 
| RouterFunctions.Builder | GET(String pattern,
   RequestPredicate predicate,
   HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  GETrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | HEAD(String pattern,
    HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  HEADrequests
 that match the given pattern. | 
| RouterFunctions.Builder | HEAD(String pattern,
    RequestPredicate predicate,
    HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  HEADrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | nest(RequestPredicate predicate,
    Consumer<RouterFunctions.Builder> builderConsumer)Route to a built router function if the given request predicate applies. | 
| RouterFunctions.Builder | nest(RequestPredicate predicate,
    Supplier<RouterFunction<ServerResponse>> routerFunctionSupplier)Route to the supplied router function if the given request predicate applies. | 
| <T extends Throwable> | onError(Class<T> exceptionType,
       BiFunction<? super T,ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider)Filters all exceptions of the given type by applying the given response provider
 function. | 
| RouterFunctions.Builder | onError(Predicate<? super Throwable> predicate,
       BiFunction<? super Throwable,ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider)Filters all exceptions that match the predicate by applying the given response provider
 function. | 
| RouterFunctions.Builder | OPTIONS(String pattern,
       HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  OPTIONSrequests
 that match the given pattern. | 
| RouterFunctions.Builder | OPTIONS(String pattern,
       RequestPredicate predicate,
       HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  OPTIONSrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | PATCH(String pattern,
     HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  PATCHrequests
 that match the given pattern. | 
| RouterFunctions.Builder | PATCH(String pattern,
     RequestPredicate predicate,
     HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  PATCHrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | path(String pattern,
    Consumer<RouterFunctions.Builder> builderConsumer)Route to a built router function if the given path prefix pattern applies. | 
| RouterFunctions.Builder | path(String pattern,
    Supplier<RouterFunction<ServerResponse>> routerFunctionSupplier)Route to the supplied router function if the given path prefix pattern applies. | 
| RouterFunctions.Builder | POST(String pattern,
    HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  POSTrequests
 that match the given pattern. | 
| RouterFunctions.Builder | POST(String pattern,
    RequestPredicate predicate,
    HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  POSTrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | PUT(String pattern,
   HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  PUTrequests
 that match the given pattern. | 
| RouterFunctions.Builder | PUT(String pattern,
   RequestPredicate predicate,
   HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all HTTP  PUTrequests
 that match the given pattern and predicate. | 
| RouterFunctions.Builder | resources(Function<ServerRequest,reactor.core.publisher.Mono<Resource>> lookupFunction)Route to resources using the provided lookup function. | 
| RouterFunctions.Builder | resources(String pattern,
         Resource location)Route requests that match the given pattern to resources relative to the given root location. | 
| RouterFunctions.Builder | route(RequestPredicate predicate,
     HandlerFunction<ServerResponse> handlerFunction)Adds a route to the given handler function that handles all requests that match the
 given predicate. | 
RouterFunctions.Builder GET(String pattern, HandlerFunction<ServerResponse> handlerFunction)
GET requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all GET requests that
 match patternRouterFunctions.Builder GET(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
GET requests
 that match the given pattern and predicate.
 For instance, the following example routes GET requests for "/user" that accept JSON
 to the listUsers method in userController:
 
 RouterFunction<ServerResponse> route =
   RouterFunctions.route()
     .GET("/user", RequestPredicates.accept(MediaType.APPLICATION_JSON), userController::listUsers)
     .build();
 pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all GET requests that
 match patternRequestPredicatesRouterFunctions.Builder HEAD(String pattern, HandlerFunction<ServerResponse> handlerFunction)
HEAD requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all HEAD requests that
 match patternRouterFunctions.Builder HEAD(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
HEAD requests
 that match the given pattern and predicate.pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all HEAD requests that
 match patternRouterFunctions.Builder POST(String pattern, HandlerFunction<ServerResponse> handlerFunction)
POST requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all POST requests that
 match patternRouterFunctions.Builder POST(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
POST requests
 that match the given pattern and predicate.
 For instance, the following example routes POST requests for "/user" that contain JSON
 to the addUser method in userController:
 
 RouterFunction<ServerResponse> route =
   RouterFunctions.route()
     .POST("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::addUser)
     .build();
 pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all POST requests that
 match patternRouterFunctions.Builder PUT(String pattern, HandlerFunction<ServerResponse> handlerFunction)
PUT requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all PUT requests that
 match patternRouterFunctions.Builder PUT(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PUT requests
 that match the given pattern and predicate.
 For instance, the following example routes PUT requests for "/user" that contain JSON
 to the editUser method in userController:
 
 RouterFunction<ServerResponse> route =
   RouterFunctions.route()
     .PUT("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
     .build();
 pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all PUT requests that
 match patternRouterFunctions.Builder PATCH(String pattern, HandlerFunction<ServerResponse> handlerFunction)
PATCH requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all PATCH requests that
 match patternRouterFunctions.Builder PATCH(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PATCH requests
 that match the given pattern and predicate.
 For instance, the following example routes PATCH requests for "/user" that contain JSON
 to the editUser method in userController:
 
 RouterFunction<ServerResponse> route =
   RouterFunctions.route()
     .PATCH("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
     .build();
 pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all PATCH requests that
 match patternRouterFunctions.Builder DELETE(String pattern, HandlerFunction<ServerResponse> handlerFunction)
DELETE requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all DELETE requests that
 match patternRouterFunctions.Builder DELETE(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
DELETE requests
 that match the given pattern and predicate.pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all DELETE requests that
 match patternRouterFunctions.Builder OPTIONS(String pattern, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS requests
 that match the given pattern.pattern - the pattern to match tohandlerFunction - the handler function to handle all OPTIONS requests that
 match patternRouterFunctions.Builder OPTIONS(String pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS requests
 that match the given pattern and predicate.pattern - the pattern to match topredicate - additional predicate to matchhandlerFunction - the handler function to handle all OPTIONS requests that
 match patternRouterFunctions.Builder route(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
predicate - the request predicate to matchhandlerFunction - the handler function to handle all requests that match the predicateRequestPredicatesRouterFunctions.Builder add(RouterFunction<ServerResponse> routerFunction)
RouterFunctions.route(RequestPredicate, HandlerFunction)
 to allow for more flexible predicate matching.
 For instance, the following example adds the router function returned from
 OrderController.routerFunction().
 to the changeUser method in userController:
 
 RouterFunction<ServerResponse> route =
   RouterFunctions.route()
     .GET("/users", userController::listUsers)
     .add(orderController.routerFunction());
     .build();
 routerFunction - the router function to be addedRequestPredicatesRouterFunctions.Builder resources(String pattern, Resource location)
 Resource location = new FileSystemResource("public-resources/");
 RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);
 pattern - the pattern to matchlocation - the location directory relative to which resources should be resolvedRouterFunctions.Builder resources(Function<ServerRequest,reactor.core.publisher.Mono<Resource>> lookupFunction)
Resource for the given request, it will be it will be exposed using a
 HandlerFunction that handles GET, HEAD, and OPTIONS requests.lookupFunction - the function to provide a Resource given the ServerRequestRouterFunctions.Builder nest(RequestPredicate predicate, Supplier<RouterFunction<ServerResponse>> routerFunctionSupplier)
For instance, the following example creates a nested route with a "/user" path predicate, so that GET requests for "/user" will list users, and POST request for "/user" will create a new user.
 RouterFunction<ServerResponse> nestedRoute =
   RouterFunctions.route()
     .nest(RequestPredicates.path("/user"), () ->
       RouterFunctions.route()
         .GET(this::listUsers)
         .POST(this::createUser)
         .build())
     .build();
 predicate - the predicate to testrouterFunctionSupplier - supplier for the nested router function to delegate to if
 the predicate appliesRequestPredicatesRouterFunctions.Builder nest(RequestPredicate predicate, Consumer<RouterFunctions.Builder> builderConsumer)
For instance, the following example creates a nested route with a "/user" path predicate, so that GET requests for "/user" will list users, and POST request for "/user" will create a new user.
 RouterFunction<ServerResponse> nestedRoute =
   RouterFunctions.route()
     .nest(RequestPredicates.path("/user"), builder ->
       builder.GET(this::listUsers)
              .POST(this::createUser))
     .build();
 predicate - the predicate to testbuilderConsumer - consumer for a Builder that provides the nested router
 functionRequestPredicatesRouterFunctions.Builder path(String pattern, Supplier<RouterFunction<ServerResponse>> routerFunctionSupplier)
For instance, the following example creates a nested route with a "/user" path
 predicate that delegates to the router function defined in userController,
 and with a "/order" path that delegates to orderController.
 
 RouterFunction<ServerResponse> nestedRoute =
   RouterFunctions.route()
     .path("/user", userController::routerFunction)
     .path("/order", orderController::routerFunction)
     .build();
 pattern - the pattern to match torouterFunctionSupplier - supplier for the nested router function to delegate to if
 the pattern matchesRouterFunctions.Builder path(String pattern, Consumer<RouterFunctions.Builder> builderConsumer)
For instance, the following example creates a nested route with a "/user" path predicate, so that GET requests for "/user" will list users, and POST request for "/user" will create a new user.
 RouterFunction<ServerResponse> nestedRoute =
   RouterFunctions.route()
     .path("/user", builder ->
       builder.GET(this::listUsers)
              .POST(this::createUser))
     .build();
 pattern - the pattern to match tobuilderConsumer - consumer for a Builder that provides the nested router
 functionRouterFunctions.Builder filter(HandlerFilterFunction<ServerResponse,ServerResponse> filterFunction)
For instance, the following example creates a filter that returns a 401 Unauthorized response if the request does not contain the necessary authentication headers.
 RouterFunction<ServerResponse> filteredRoute =
   RouterFunctions.route()
     .GET("/user", this::listUsers)
     .filter((request, next) -> {
       // check for authentication headers
       if (isAuthenticated(request)) {
         return next.handle(request);
       }
       else {
         return ServerResponse.status(HttpStatus.UNAUTHORIZED).build();
       }
     })
     .build();
 filterFunction - the function to filter all routes built by this builderRouterFunctions.Builder before(Function<ServerRequest,ServerRequest> requestProcessor)
For instance, the following example creates a filter that logs the request before the handler function executes.
 RouterFunction<ServerResponse> filteredRoute =
   RouterFunctions.route()
     .GET("/user", this::listUsers)
     .before(request -> {
       log(request);
       return request;
     })
     .build();
 requestProcessor - a function that transforms the requestRouterFunctions.Builder after(BiFunction<ServerRequest,ServerResponse,ServerResponse> responseProcessor)
For instance, the following example creates a filter that logs the response after the handler function executes.
 RouterFunction<ServerResponse> filteredRoute =
   RouterFunctions.route()
     .GET("/user", this::listUsers)
     .after((request, response) -> {
       log(response);
       return response;
     })
     .build();
 responseProcessor - a function that transforms the responseRouterFunctions.Builder onError(Predicate<? super Throwable> predicate, BiFunction<? super Throwable,ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider)
For instance, the following example creates a filter that returns a 500 response
 status when an IllegalStateException occurs.
 
 RouterFunction<ServerResponse> filteredRoute =
   RouterFunctions.route()
     .GET("/user", this::listUsers)
     .onError(e -> e instanceof IllegalStateException,
       (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
     .build();
 predicate - the type of exception to filterresponseProvider - a function that creates a response<T extends Throwable> RouterFunctions.Builder onError(Class<T> exceptionType, BiFunction<? super T,ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider)
For instance, the following example creates a filter that returns a 500 response
 status when an IllegalStateException occurs.
 
 RouterFunction<ServerResponse> filteredRoute =
   RouterFunctions.route()
     .GET("/user", this::listUsers)
     .onError(IllegalStateException.class,
       (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
     .build();
 exceptionType - the type of exception to filterresponseProvider - a function that creates a responseRouterFunction<ServerResponse> build()
RouterFunction. All created routes are
 composed with one another, and filters
 (if any) are applied to the result.