インターフェース RouterFunctions.Builder

含まれているクラス:
RouterFunctions

public static interface RouterFunctions.Builder
ルーター関数の検出可能なビルダーを表します。RouterFunctions.route() 経由で取得します。
導入:
5.2
作成者:
Arjen Poutsma, Sebastien Deleuze, Rossen Stoyanchev
  • メソッドの詳細

    • GET

      <T extends ServerResponse> RouterFunctions.Builder GET(HandlerFunction<T> handlerFunction)
      HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての GET リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • GET

      <T extends ServerResponse> RouterFunctions.Builder GET(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致するすべての GET リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • GET

      <T extends ServerResponse> RouterFunctions.Builder GET(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致するすべての GET リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • GET

      <T extends ServerResponse> RouterFunctions.Builder GET(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP GET リクエストを処理する指定されたハンドラー関数にルートを追加します。

      たとえば、以下は JSON を受け入れる "/user" の GET リクエストを userController の listUsers メソッドにルーティングします。

      RouterFunction<ServerResponse> route =
          RouterFunctions.route()
              .GET("/user", RequestPredicates.accept(MediaType.APPLICATION_JSON), userController::listUsers)
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern および述語に一致するすべての GET リクエストを処理するハンドラー関数
      戻り値:
      このビルダー
      関連事項:
    • HEAD

      <T extends ServerResponse> RouterFunctions.Builder HEAD(HandlerFunction<T> handlerFunction)
      HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての HEAD リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • HEAD

      <T extends ServerResponse> RouterFunctions.Builder HEAD(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致する HEAD リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • HEAD

      <T extends ServerResponse> RouterFunctions.Builder HEAD(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する HEAD リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • HEAD

      <T extends ServerResponse> RouterFunctions.Builder HEAD(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP HEAD リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致する HEAD リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • POST

      <T extends ServerResponse> RouterFunctions.Builder POST(HandlerFunction<T> handlerFunction)
      HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての POST リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • POST

      <T extends ServerResponse> RouterFunctions.Builder POST(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致する POST リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • POST

      <T extends ServerResponse> RouterFunctions.Builder POST(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する POST リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • POST

      <T extends ServerResponse> RouterFunctions.Builder POST(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP POST リクエストを処理する指定されたハンドラー関数にルートを追加します。

      たとえば、以下は JSON を含む "/user" の POST リクエストを userController の addUser メソッドにルーティングします。

      RouterFunction<ServerResponse> route =
          RouterFunctions.route()
              .POST("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::addUser)
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致するすべての POST リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • PUT

      <T extends ServerResponse> RouterFunctions.Builder PUT(HandlerFunction<T> handlerFunction)
      HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての PUT リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • PUT

      <T extends ServerResponse> RouterFunctions.Builder PUT(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致するすべての PUT リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • PUT

      <T extends ServerResponse> RouterFunctions.Builder PUT(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する PUT リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • PUT

      <T extends ServerResponse> RouterFunctions.Builder PUT(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP PUT リクエストを処理する指定されたハンドラー関数にルートを追加します。

      たとえば、以下は JSON を含む "/user" の PUT リクエストを userController の editUser メソッドにルーティングします。

      RouterFunction<ServerResponse> route =
          RouterFunctions.route()
              .PUT("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致する PUT リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • PATCH

      <T extends ServerResponse> RouterFunctions.Builder PATCH(HandlerFunction<T> handlerFunction)
      HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての PATCH リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • PATCH

      <T extends ServerResponse> RouterFunctions.Builder PATCH(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致する PATCH リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • PATCH

      <T extends ServerResponse> RouterFunctions.Builder PATCH(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する PATCH リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • PATCH

      <T extends ServerResponse> RouterFunctions.Builder PATCH(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP PATCH リクエストを処理する指定されたハンドラー関数にルートを追加します。

      たとえば、以下は JSON を含む "/user" の PATCH リクエストを userController の editUser メソッドにルーティングします。

      RouterFunction<ServerResponse> route =
          RouterFunctions.route()
              .PATCH("/user", RequestPredicates.contentType(MediaType.APPLICATION_JSON), userController::editUser)
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致する PATCH リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • DELETE

      <T extends ServerResponse> RouterFunctions.Builder DELETE(HandlerFunction<T> handlerFunction)
      HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - すべての DELETE リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • DELETE

      <T extends ServerResponse> RouterFunctions.Builder DELETE(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致する DELETE リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • DELETE

      <T extends ServerResponse> RouterFunctions.Builder DELETE(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する DELETE リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • DELETE

      <T extends ServerResponse> RouterFunctions.Builder DELETE(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP DELETE リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致する DELETE リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • OPTIONS

      <T extends ServerResponse> RouterFunctions.Builder OPTIONS(HandlerFunction<T> handlerFunction)
      HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      handlerFunction - OPTIONS リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
    • OPTIONS

      <T extends ServerResponse> RouterFunctions.Builder OPTIONS(StringSE pattern, HandlerFunction<T> handlerFunction)
      指定されたパターンに一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      handlerFunction - pattern に一致する OPTIONS リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • OPTIONS

      <T extends ServerResponse> RouterFunctions.Builder OPTIONS(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致する述語
      handlerFunction - predicate に一致する OPTIONS リクエストのハンドラー
      戻り値:
      このビルダー
      導入:
      5.3
      関連事項:
    • OPTIONS

      <T extends ServerResponse> RouterFunctions.Builder OPTIONS(StringSE pattern, RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定されたパターンと述語に一致するすべての HTTP OPTIONS リクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      predicate - 一致する追加の述語
      handlerFunction - pattern に一致する OPTIONS リクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • route

      <T extends ServerResponse> RouterFunctions.Builder route(RequestPredicate predicate, HandlerFunction<T> handlerFunction)
      指定された述語に一致するすべてのリクエストを処理する指定されたハンドラー関数にルートを追加します。
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - 一致するリクエスト述語
      handlerFunction - 述語に一致するすべてのリクエストのハンドラー
      戻り値:
      このビルダー
      関連事項:
    • add

      <T extends ServerResponse> RouterFunctions.Builder add(RouterFunction<T> routerFunction)
      指定されたルートをこのビルダーに追加します。外部で定義されたルーター関数をこのビルダーにマージするために使用できます。または、RouterFunctions.route(RequestPredicate, HandlerFunction) と組み合わせて、より柔軟な述語マッチングを可能にすることができます。

      たとえば、以下は、OrderController.routerFunction() から返されたルーター関数を userController の changeUser メソッドに追加します。

      RouterFunction<ServerResponse> route =
          RouterFunctions.route()
              .GET("/users", userController::listUsers)
              .add(orderController.routerFunction());
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      routerFunction - 追加するルーター関数
      戻り値:
      このビルダー
      関連事項:
    • resource

      RouterFunctions.Builder resource(RequestPredicate predicate, Resource resource)
      指定された述語に一致するリクエストを指定されたリソースにルーティングします。例:
      Resource resource = new ClassPathResource("static/index.html")
      RouterFunction<ServerResponse> resources = RouterFunctions.resource(path("/api/**").negate(), resource);
      
      パラメーター:
      predicate - 一致する述語
      resource - 提供するリソース
      戻り値:
      リソースにルーティングするルーター関数
      導入:
      6.1.4
    • resource

      RouterFunctions.Builder resource(RequestPredicate predicate, Resource resource, BiConsumerSE<Resource, HttpHeaders> headersConsumer)
      指定された述語に一致するリクエストを指定されたリソースにルーティングします。例:
      Resource resource = new ClassPathResource("static/index.html")
      RouterFunction<ServerResponse> resources = RouterFunctions.resource(path("/api/**").negate(), resource);
      
      パラメーター:
      predicate - 一致する述語
      resource - 提供するリソース
      headersConsumer - 提供されるリソースの HTTP ヘッダーへのアクセスを提供します
      戻り値:
      リソースにルーティングするルーター関数
      導入:
      6.1.4
    • resources

      RouterFunctions.Builder resources(StringSE pattern, Resource location)
      指定されたパターンに一致するリクエストを、指定されたルートロケーションを基準としたリソースにルーティングします。例:
      Resource location = new FileUrlResource("public-resources/");
      RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);
      
      パラメーター:
      pattern - マッチングするパターン
      location - リソースを解決する必要のある場所のディレクトリ
      戻り値:
      このビルダー
      関連事項:
    • resources

      RouterFunctions.Builder resources(StringSE pattern, Resource location, BiConsumerSE<Resource, HttpHeaders> headersConsumer)
      指定されたパターンに一致するリクエストを、指定されたルートロケーションを基準としたリソースにルーティングします。例:
      Resource location = new FileUrlResource("public-resources/");
      RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);
      
      パラメーター:
      pattern - マッチングするパターン
      location - リソースを解決する必要のある場所のディレクトリ
      headersConsumer - 提供されるリソースの HTTP ヘッダーへのアクセスを提供します
      戻り値:
      このビルダー
      導入:
      6.1
      関連事項:
    • resources

      提供された検索機能を使用してリソースにルーティングします。ルックアップ関数が指定されたリクエストに Resource を提供する場合、GET、HEAD、OPTIONS リクエストを処理する HandlerFunction を使用して公開されます。
      パラメーター:
      lookupFunction - Resource を提供する機能
      戻り値:
      このビルダー
    • resources

      提供された検索機能を使用してリソースにルーティングします。ルックアップ関数が指定されたリクエストに Resource を提供する場合、GET、HEAD、OPTIONS リクエストを処理する HandlerFunction を使用して公開されます。
      パラメーター:
      lookupFunction - Resource を提供する機能
      headersConsumer - 提供されるリソースの HTTP ヘッダーへのアクセスを提供します
      戻り値:
      このビルダー
      導入:
      6.1
    • nest

      <T extends ServerResponse> RouterFunctions.Builder nest(RequestPredicate predicate, SupplierSE<RouterFunction<T>> 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();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - テストする述語
      routerFunctionSupplier - 述語が適用される場合に委譲するネストされたルーター関数のサプライヤー
      戻り値:
      このビルダー
      関連事項:
    • nest

      指定されたリクエスト述語が適用される場合、構築されたルーター関数にルーティングします。このメソッドを使用して、ネストされたルートを作成できます。ルートのグループは、共通のパス(プレフィックス)、ヘッダー、その他のリクエスト述語を共有します。

      たとえば、以下は "/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 のコンシューマー
      戻り値:
      このビルダー
      関連事項:
    • path

      <T extends ServerResponse> RouterFunctions.Builder path(StringSE pattern, SupplierSE<RouterFunction<T>> routerFunctionSupplier)
      指定されたパスプレフィックスパターンが適用される場合は、提供されたルーター関数にルーティングします。このメソッドを使用すると、ルートのグループが共通のパスプレフィックスを共有するネストされたルートを作成できます。具体的には、このメソッドを使用して、外部で定義されたルーター関数をパス接頭辞にマージできます。

      たとえば、以下は、userController で定義されたルーター関数に委譲する "/user" パス述語と、orderController に委譲する "/order" パスを持つネストされたルートを作成します。

      RouterFunction<ServerResponse> nestedRoute =
          RouterFunctions.route()
              .path("/user", userController::routerFunction)
              .path("/order", orderController::routerFunction)
              .build();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      pattern - 照合するパターン
      routerFunctionSupplier - パターンが一致する場合に委譲するネストされたルーター関数のサプライヤー
      戻り値:
      このビルダー
      関連事項:
    • path

      指定されたパスプレフィックスパターンが適用される場合、構築されたルーター関数にルーティングします。このメソッドを使用すると、ルートのグループが共通のパスプレフィックスを共有するネストされたルートを作成できます。

      たとえば、以下は "/user" パス述語を持つネストされたルートを作成し、"/user" の GET リクエストでユーザーがリストされ、"/user" の POST リクエストで新しいユーザーが作成されるようにしています。

      RouterFunction<ServerResponse> nestedRoute =
          RouterFunctions.route()
              .path("/user", builder -> builder.GET(this::listUsers).POST(this::createUser))
              .build();
      
      パラメーター:
      pattern - 照合するパターン
      builderConsumer - ネストされたルーター関数を提供する Builder のコンシューマー
      戻り値:
      このビルダー
      関連事項:
    • filter

      <T extends ServerResponse, R extends ServerResponse> RouterFunctions.Builder filter(HandlerFilterFunction<T,R> 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();
      
      型パラメーター:
      T - フィルタリングするハンドラー関数の型
      R - 関数によって返されるレスポンスの種類
      パラメーター:
      filterFunction - このビルダーによって作成されたすべてのルートをフィルタリングする関数
      戻り値:
      このビルダー
    • before

      指定されたリクエスト処理関数を使用して、このビルダーによって作成されたすべてのルートのリクエストオブジェクトをフィルタリングします。フィルターは通常、ロギング、セキュリティなどの横断的問題に対処するために使用されます。

      たとえば、次の例では、ハンドラー関数が実行される前にリクエストをログに記録するフィルターを作成します。

      RouterFunction<ServerResponse> filteredRoute =
        RouterFunctions.route()
          .GET("/user", this::listUsers)
          .before(request -> {
            log(request);
            return request;
          })
          .build();
      
      パラメーター:
      requestProcessor - リクエストを変換する関数
      戻り値:
      このビルダー
    • after

      <T extends ServerResponse, R extends ServerResponse> RouterFunctions.Builder after(BiFunctionSE<ServerRequest, T, R> responseProcessor)
      指定されたレスポンス処理関数を使用して、このビルダーによって作成されたすべてのルートのレスポンスオブジェクトをフィルターに掛けます。フィルターは通常、ロギング、セキュリティなどの横断的問題に対処するために使用されます。

      たとえば、次の例では、ハンドラー関数の実行後にレスポンスをログに記録するフィルターを作成します。

      RouterFunction<ServerResponse> filteredRoute =
          RouterFunctions.route()
              .GET("/user", this::listUsers)
              .after((request, response) -> {
                  log(response);
                  return response;
              })
              .build();
      
      型パラメーター:
      T - フィルタリングするハンドラー関数の型
      R - 関数によって返されるレスポンスの種類
      パラメーター:
      responseProcessor - レスポンスを変換する関数
      戻り値:
      このビルダー
    • onError

      <T extends ServerResponse> RouterFunctions.Builder onError(PredicateSE<ThrowableSE> predicate, BiFunctionSE<ThrowableSE, ServerRequest, T> 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();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      predicate - フィルタリングする例外の型
      responseProvider - レスポンスを作成する関数
      戻り値:
      このビルダー
    • onError

      <T extends ServerResponse> RouterFunctions.Builder onError(ClassSE<? extends ThrowableSE> exceptionType, BiFunctionSE<ThrowableSE, ServerRequest, T> 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();
      
      型パラメーター:
      T - ハンドラー関数によって返されるレスポンスの型
      パラメーター:
      exceptionType - フィルタリングする例外の型
      responseProvider - レスポンスを作成する関数
      戻り値:
      このビルダー
    • withAttribute

      RouterFunctions.Builder withAttribute(StringSE name, ObjectSE value)
      このビルダーで作成された最後のルートに、指定された名前と値の属性を追加します。
      パラメーター:
      name - 属性名
      value - 属性値
      戻り値:
      このビルダー
      導入:
      5.3
    • withAttributes

      RouterFunctions.Builder withAttributes(ConsumerSE<MapSE<StringSE,ObjectSE>> attributesConsumer)
      最後に構築されたルートの属性を操作します。

      コンシューマーに提供されるマップは「ライブ」であるため、コンシューマーを使用して、既存の属性を上書きしSEたり、属性を削除しSEたり、その他の MapSE メソッドを使用したりできます。

      パラメーター:
      attributesConsumer - 属性マップを使用する関数
      戻り値:
      このビルダー
      導入:
      5.3
    • build

      RouterFunction をビルドします。作成されたすべてのルートは互いに構成され、フィルター(存在する場合)が結果に適用されます。
      戻り値:
      内蔵ルーター関数