public static interface RouterFunctions.Builder
RouterFunctions.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(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(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | GET(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
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) 指定されたリクエスト述語が適用される場合、提供されたルーター関数にルーティングします。 |
<T extends ThrowableSE> | onError(ClassSE<T> exceptionType, BiFunctionSE<? super T,ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider) 指定されたレスポンスプロバイダー関数を適用することにより、指定された型のすべての例外をフィルターに掛けます。 |
RouterFunctions.Builder | onError(PredicateSE<? super ThrowableSE> predicate, BiFunctionSE<? super ThrowableSE, ServerRequest,reactor.core.publisher.Mono<ServerResponse>> responseProvider) 指定されたレスポンスプロバイダー関数を適用することにより、述語に一致するすべての例外をフィルターに掛けます。 |
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(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(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンに一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
RouterFunctions.Builder | POST(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction) 指定されたパターンと述語に一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。 |
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,reactor.core.publisher.Mono<Resource>> lookupFunction) 提供された検索機能を使用してリソースにルーティングします。 |
RouterFunctions.Builder | resources(StringSE pattern, Resource location) 指定されたパターンに一致するリクエストを、指定されたルートの場所を基準としたリソースにルーティングします。 |
RouterFunctions.Builder GET(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
GET
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての GET
リクエストを処理するハンドラー関数 RouterFunctions.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
リクエストを処理するハンドラー関数 RequestPredicates
RouterFunctions.Builder HEAD(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
HEAD
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての HEAD
リクエストを処理するハンドラー関数 RouterFunctions.Builder HEAD(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
HEAD
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン predicate
- 一致する追加の述語 handlerFunction
- pattern
に一致するすべての HEAD
リクエストを処理するハンドラー関数 RouterFunctions.Builder POST(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
POST
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての POST
リクエストを処理するハンドラー関数 RouterFunctions.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(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
PUT
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての PUT
リクエストを処理するハンドラー関数 RouterFunctions.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(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
PATCH
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての PATCH
リクエストを処理するハンドラー関数 RouterFunctions.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(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
DELETE
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての DELETE
リクエストを処理するハンドラー関数 RouterFunctions.Builder DELETE(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
DELETE
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン predicate
- 一致する追加の述語 handlerFunction
- pattern
に一致するすべての DELETE
リクエストを処理するハンドラー関数 RouterFunctions.Builder OPTIONS(StringSE pattern, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン handlerFunction
- pattern
に一致するすべての OPTIONS
リクエストを処理するハンドラー関数 RouterFunctions.Builder OPTIONS(StringSE pattern, RequestPredicate predicate, HandlerFunction<ServerResponse> handlerFunction)
OPTIONS
リクエストを処理する指定されたハンドラー関数にルートを追加します。pattern
- 照合するパターン predicate
- 一致する追加の述語 handlerFunction
- pattern
に一致するすべての OPTIONS
リクエストを処理するハンドラー関数 RouterFunctions.Builder add(RouterFunction<ServerResponse> routerFunction)
RouterFunctions.route(RequestPredicate, HandlerFunction)
と組み合わせて、より柔軟な述語マッチングを可能にすることができます。 たとえば、次の例では、OrderController.routerFunction()
から返されたルーター関数を追加しています。userController
の changeUser
メソッドに:
RouterFunctionlt;ServerResponsegt; route = RouterFunctions.route() .GET("/users", userController::listUsers) .add(orderController.routerFunction()); .build();
routerFunction
- 追加するルーター関数 RequestPredicates
RouterFunctions.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,reactor.core.publisher.Mono<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
- 述語が適用される場合に委譲するネストされたルーター関数のサプライヤー RequestPredicates
RouterFunctions.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
のコンシューマー RequestPredicates
RouterFunctions.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<? super ThrowableSE> predicate, BiFunctionSE<? super ThrowableSE,ServerRequest,reactor.core.publisher.Mono<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
- レスポンスを作成する関数 <T extends ThrowableSE> RouterFunctions.Builder onError(ClassSE<T> exceptionType, BiFunctionSE<? super T,ServerRequest,reactor.core.publisher.Mono<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
- レスポンスを作成する関数 RouterFunction<ServerResponse> build()
RouterFunction
をビルドします。作成されたすべてのルートは互いに構成され、フィルター(存在する場合)が結果に適用されます。