public static interface RouterFunctions.BuilderRouterFunctions.route() 経由で取得します。| 修飾子と型 | メソッドと説明 |
|---|---|
RouterFunctions.Builder | add(RouterFunction<ServerResponse> routerFunction) 指定されたルートをこのビルダーに追加します。 |
RouterFunctions.Builder | after(BiFunctionSE<ServerRequest, ServerResponse, ServerResponse> responseProcessor) 指定されたレスポンス処理関数を使用して、このビルダーによって作成されたすべてのルートのレスポンスオブジェクトをフィルターに掛けます。 |
RouterFunctions.Builder | before(FunctionSE<ServerRequest, ServerRequest> requestProcessor) 指定されたリクエスト処理関数を使用して、このビルダーによって作成されたすべてのルートのリクエストオブジェクトをフィルタリングします。 |
RouterFunction<ServerResponse> | build()RouterFunction をビルドします。 |
RouterFunctions.Builder | DELETE(HandlerFunction<ServerResponse> handlerFunction)HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | DELETE(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | DELETE(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | DELETE(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | filter(HandlerFilterFunction<ServerResponse, ServerResponse> filterFunction) このビルダーによって作成されたすべてのルートを、指定されたフィルター関数でフィルターします。 |
RouterFunctions.Builder | GET(HandlerFunction<ServerResponse> handlerFunction)HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | GET(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | GET(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | GET(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | HEAD(HandlerFunction<ServerResponse> handlerFunction)HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | HEAD(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | HEAD(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | HEAD(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | nest(RequestPredicate predicate, ConsumerSE<RouterFunctions.Builder> builderConsumer) 指定されたリクエスト述語が適用される場合、構築されたルーター関数にルーティングします。 |
RouterFunctions.Builder | nest(RequestPredicate predicate, SupplierSE<RouterFunction<ServerResponse>> routerFunctionSupplier) 指定されたリクエスト述語が適用される場合、提供されたルーター関数にルーティングします。 |
RouterFunctions.Builder | onError(ClassSE<? extends ThrowableSE> exceptionType, BiFunctionSE<ThrowableSE, ServerRequest, ServerResponse> responseProvider) 指定されたレスポンスプロバイダー関数を適用することにより、指定された型のすべての例外をフィルターに掛けます。 |
RouterFunctions.Builder | onError(PredicateSE<ThrowableSE> predicate, BiFunctionSE<ThrowableSE, ServerRequest, ServerResponse> responseProvider) 指定されたレスポンスプロバイダー関数を適用することにより、述語に一致するすべての例外をフィルターに掛けます。 |
RouterFunctions.Builder | OPTIONS(HandlerFunction<ServerResponse> handlerFunction)HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | OPTIONS(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | OPTIONS(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | OPTIONS(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PATCH(HandlerFunction<ServerResponse> handlerFunction)HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PATCH(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PATCH(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PATCH(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | path(StringSE pattern, ConsumerSE<RouterFunctions.Builder> builderConsumer) 指定されたパスプレフィックスパターンが適用される場合、構築されたルーター関数にルーティングします。 |
RouterFunctions.Builder | path(StringSE pattern, SupplierSE<RouterFunction<ServerResponse>> routerFunctionSupplier) 指定されたパスプレフィックスパターンが適用される場合は、提供されたルーター関数にルーティングします。 |
RouterFunctions.Builder | POST(HandlerFunction<ServerResponse> handlerFunction)HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | POST(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | POST(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | POST(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PUT(HandlerFunction<ServerResponse> handlerFunction)HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PUT(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PUT(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | PUT(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | resources(FunctionSE<ServerRequest, OptionalSE<Resource>> lookupFunction) 提供された検索機能を使用してリソースにルーティングします。 |
RouterFunctions.Builder | resources(StringSE pattern, Resource location) 指定されたパターンに一致するリクエストを、指定されたルートの場所を基準としたリソースにルーティングします。 |
RouterFunctions.Builder | route(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定された述語に一致するすべてのリクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | withAttribute(StringSE name, ObjectSE value) このビルダーで作成された最後のルートに、指定された名前と値の属性を追加します。 |
RouterFunctions.Builder | withAttributes(ConsumerSE<MapSE<StringSE, ObjectSE>> attributesConsumer) 特定のコンシューマーで構築された最後のルートの属性を操作します。 |
RouterFunctions.Builder GET(HandlerFunction<ServerResponse> handlerFunction)
GET リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての GET リクエストを処理するハンドラー関数 RouterFunctions.Builder GET(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
GET リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての GET リクエストを処理するハンドラー関数 RouterFunctions.Builder GET(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
GET リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての GET リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder GET(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 たとえば、次の例では、JSON を受け入れる "/user" の GET リクエストを userController の listUsers メソッドにルーティングします。
RouterFunction<ServerResponse> route =
RouterFunctions.route()
.GET("/user", RequestPredicates.accept(MediaType.APPLICATION_JSON), userController::listUsers)
.build();
pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern および述語に一致するすべての GET リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder HEAD(HandlerFunction<ServerResponse> handlerFunction)
HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての HEAD リクエストを処理するハンドラー関数 RouterFunctions.Builder HEAD(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての HEAD リクエストを処理するハンドラー関数 RouterFunctions.Builder HEAD(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての HEAD リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder HEAD(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての HEAD リクエストを処理するハンドラー関数 RouterFunctions.Builder POST(HandlerFunction<ServerResponse> handlerFunction)
POST リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての POST リクエストを処理するハンドラー関数 RouterFunctions.Builder POST(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
POST リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての POST リクエストを処理するハンドラー関数 RouterFunctions.Builder POST(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
POST リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての POST リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder POST(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 たとえば、次の例では、JSON を含む "/user" の POST リクエストを userController の addUser メソッドにルーティングします。
RouterFunction<ServerResponse> route =
RouterFunctions.route()
.POST("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::addUser)
.build();
pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての POST リクエストを処理するハンドラー関数 RouterFunctions.Builder PUT(HandlerFunction<ServerResponse> handlerFunction)
PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての PUT リクエストを処理するハンドラー関数 RouterFunctions.Builder PUT(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての PUT リクエストを処理するハンドラー関数 RouterFunctions.Builder PUT(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての PUT リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder PUT(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。 たとえば、次の例では、JSON を含む "/user" の PUT リクエストを userController の editUser メソッドにルーティングします。
RouterFunction<ServerResponse> route =
RouterFunctions.route()
.PUT("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
.build();
pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての PUT リクエストを処理するハンドラー関数 RouterFunctions.Builder PATCH(HandlerFunction<ServerResponse> handlerFunction)
PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての PATCH リクエストを処理するハンドラー関数 RouterFunctions.Builder PATCH(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての PATCH リクエストを処理するハンドラー関数 RouterFunctions.Builder PATCH(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての PATCH リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder PATCH(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。 たとえば、次の例では、JSON を含む "/user" の PATCH リクエストを userController の editUser メソッドにルーティングします。
RouterFunction<ServerResponse> route =
RouterFunctions.route()
.PATCH("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
.build();
pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての PATCH リクエストを処理するハンドラー関数 RouterFunctions.Builder DELETE(HandlerFunction<ServerResponse> handlerFunction)
DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての DELETE リクエストを処理するハンドラー関数 RouterFunctions.Builder DELETE(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての DELETE リクエストを処理するハンドラー関数 RouterFunctions.Builder DELETE(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての DELETE リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder DELETE(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての DELETE リクエストを処理するハンドラー関数 RouterFunctions.Builder OPTIONS(HandlerFunction<ServerResponse> handlerFunction)
OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。handlerFunction - すべての OPTIONS リクエストを処理するハンドラー関数 RouterFunctions.Builder OPTIONS(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン handlerFunction - pattern に一致するすべての OPTIONS リクエストを処理するハンドラー関数 RouterFunctions.Builder OPTIONS(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。predicate - 一致する述語 handlerFunction - predicate に一致するすべての OPTIONS リクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder OPTIONS(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern - 照合するパターン predicate - 一致する追加の述語 handlerFunction - pattern に一致するすべての OPTIONS リクエストを処理するハンドラー関数 RouterFunctions.Builder route(RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
predicate - 一致するリクエスト述語 handlerFunction - 述語に一致するすべてのリクエストを処理するハンドラー関数 RequestPredicatesRouterFunctions.Builder add(RouterFunction<ServerResponse> routerFunction)
RouterFunctions.route(RequestPredicate, HandlerFunction) と組み合わせて、より柔軟な述語マッチングを可能にすることができます。 たとえば、次の例では、OrderController.routerFunction() から返されたルーター関数を追加しています。userController の changeUser メソッドに:
RouterFunction<ServerResponse> route =
RouterFunctions.route()
.GET("/users", userController::listUsers)
.add(orderController.routerFunction());
.build();
routerFunction - 追加するルーター関数 RequestPredicatesRouterFunctions.Builder resources(StringSE pattern, Resource location)
Resource location = new FileSystemResource("public-resources/");
RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);
pattern - マッチングするパターン location - リソースを解決する必要のある場所のディレクトリ RouterFunctions.Builder resources(FunctionSE<ServerRequest,OptionalSE<Resource>> lookupFunction)
Resource を提供する場合、GET、HEAD、OPTIONS リクエストを処理する HandlerFunction を使用して公開されます。lookupFunction - ServerRequest を指定して Resource を提供する関数 RouterFunctions.Builder nest(RequestPredicate predicate, SupplierSE<RouterFunction<ServerResponse>> routerFunctionSupplier)
たとえば、次の例では、"/user" パス述語を使用してネストされたルートを作成します。これにより、"/user" の GET リクエストはユーザーを一覧表示し、"/user" の POST リクエストは新しいユーザーを作成します。
RouterFunction<ServerResponse> nestedRoute =
RouterFunctions.route()
.nest(RequestPredicates.path("/user"), () ->
RouterFunctions.route()
.GET(this::listUsers)
.POST(this::createUser)
.build())
.build();
predicate - テストする述語 routerFunctionSupplier - 述語が適用される場合に委譲するネストされたルーター関数のサプライヤー RequestPredicatesRouterFunctions.Builder nest(RequestPredicate predicate, ConsumerSE<RouterFunctions.Builder> builderConsumer)
たとえば、次の例では、"/user" パス述語を使用してネストされたルートを作成します。これにより、"/user" の GET リクエストはユーザーを一覧表示し、"/user" の POST リクエストは新しいユーザーを作成します。
RouterFunction<ServerResponse> nestedRoute =
RouterFunctions.route()
.nest(RequestPredicates.path("/user"), builder ->
builder.GET(this::listUsers)
.POST(this::createUser))
.build();
predicate - テストする述語 builderConsumer - ネストされたルーター関数を提供する Builder のコンシューマー RequestPredicatesRouterFunctions.Builder path(StringSE pattern, SupplierSE<RouterFunction<ServerResponse>> routerFunctionSupplier)
たとえば、次の例では、userController で定義されたルーター関数に委譲する "/user" パス述語と、orderController に委譲する "/order" パスを使用してネストされたルートを作成します。
RouterFunction<ServerResponse> nestedRoute =
RouterFunctions.route()
.path("/user", userController::routerFunction)
.path("/order", orderController::routerFunction)
.build();
pattern - 照合するパターン routerFunctionSupplier - パターンが一致する場合に委譲するネストされたルーター関数のサプライヤー RouterFunctions.Builder path(StringSE pattern, ConsumerSE<RouterFunctions.Builder> builderConsumer)
たとえば、次の例では、"/user" パス述語を使用してネストされたルートを作成します。これにより、"/user" の GET リクエストはユーザーを一覧表示し、"/user" の POST リクエストは新しいユーザーを作成します。
RouterFunction<ServerResponse> nestedRoute =
RouterFunctions.route()
.path("/user", builder ->
builder.GET(this::listUsers)
.POST(this::createUser))
.build();
pattern - 照合するパターン builderConsumer - ネストされたルーター関数を提供する Builder のコンシューマー RouterFunctions.Builder filter(HandlerFilterFunction<ServerResponse,ServerResponse> filterFunction)
たとえば、次の例では、リクエストに必要な認証ヘッダーが含まれていない場合に 401 Unauthorized レスポンスを返すフィルターを作成します。
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 - このビルダーによって作成されたすべてのルートをフィルタリングする関数 RouterFunctions.Builder before(FunctionSE<ServerRequest,ServerRequest> requestProcessor)
たとえば、次の例では、ハンドラー関数が実行される前にリクエストをログに記録するフィルターを作成します。
RouterFunction<ServerResponse> filteredRoute =
RouterFunctions.route()
.GET("/user", this::listUsers)
.before(request -> {
log(request);
return request;
})
.build();
requestProcessor - リクエストを変換する関数 RouterFunctions.Builder after(BiFunctionSE<ServerRequest,ServerResponse,ServerResponse> responseProcessor)
たとえば、次の例では、ハンドラー関数の実行後にレスポンスを記録するフィルターを作成します。
RouterFunction<ServerResponse> filteredRoute =
RouterFunctions.route()
.GET("/user", this::listUsers)
.after((request, response) -> {
log(response);
return response;
})
.build();
responseProcessor - レスポンスを変換する関数 RouterFunctions.Builder onError(PredicateSE<ThrowableSE> predicate, BiFunctionSE<ThrowableSE,ServerRequest,ServerResponse> responseProvider)
たとえば、次の例では、IllegalStateException が発生したときに 500 レスポンスステータスを返すフィルターを作成します。
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 - フィルタリングする例外の型 responseProvider - レスポンスを作成する関数 RouterFunctions.Builder onError(ClassSE<? extends ThrowableSE> exceptionType, BiFunctionSE<ThrowableSE,ServerRequest,ServerResponse> responseProvider)
たとえば、次の例では、IllegalStateException が発生したときに 500 レスポンスステータスを返すフィルターを作成します。
RouterFunction<ServerResponse> filteredRoute =
RouterFunctions.route()
.GET("/user", this::listUsers)
.onError(IllegalStateException.class,
(e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
.build();
exceptionType - フィルタリングする例外の型 responseProvider - レスポンスを作成する関数 RouterFunctions.Builder withAttribute(StringSE name, ObjectSE value)
name - 属性名 value - 属性値 RouterFunctions.Builder withAttributes(ConsumerSE<MapSE<StringSE,ObjectSE>> attributesConsumer)
コンシューマーに提供されるマップは「ライブ」であるため、コンシューマーを使用して、既存の属性を上書きしSEたり、属性を削除しSEたり、その他の MapSE メソッドを使用したりできます。
attributesConsumer - 属性マップを使用する関数 RouterFunction<ServerResponse> build()
RouterFunction をビルドします。作成されたすべてのルートは互いに構成され、フィルター(存在する場合)が結果に適用されます。