クラス RouterFunctions
java.lang.ObjectSE
org.springframework.web.reactive.function.server.RouterFunctions
Spring の関数 WebFlux フレームワークへの中心的なエントリポイント。発見可能なビルダースタイルの API を使用して
RouterFunction を作成したり、RequestPredicate および HandlerFunction を指定して RouterFunction を作成したり、既存のルーティング関数でさらにサブルーチン化したりするなど、ルーティング機能を公開します。toHttpHandler(RouterFunction) を使用して、RouterFunction を WebFlux HttpHandler に変換します。
- 導入:
- 5.0
- 作成者:
- Arjen Poutsma, Sebastien Deleuze, Rossen Stoyanchev
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明static interfaceルーター関数の検出可能なビルダーを表します。static interfaceルーター関数の論理構造から通知を受け取ります。フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE一致するパターンを含むattributeの名前 (PathPatternとして)。static final StringSEServerRequestを含むServerWebExchange属性の名前。static final StringSEURI テンプレートマップを含むServerWebExchange属性の名前。変数名を値にマッピングします。コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明static <T extends ServerResponse>
RouterFunction<T> changeParser(RouterFunction<T> routerFunction, PathPatternParser parser) 指定されたルーター関数のPathPatternParserを変更します。static <T extends ServerResponse>
RouterFunction<T> nest(RequestPredicate predicate, RouterFunction<T> routerFunction) 指定されたリクエスト述語が適用される場合、指定されたルーター関数にルーティングします。static RouterFunction<ServerResponse> resource(RequestPredicate predicate, Resource resource) 指定された述語に一致するリクエストを指定されたリソースにルーティングします。static RouterFunction<ServerResponse> resource(RequestPredicate predicate, Resource resource, BiConsumerSE<Resource, HttpHeaders> headersConsumer) 指定された述語に一致するリクエストを指定されたリソースにルーティングします。static FunctionSE<ServerRequest, Mono<Resource>> resourceLookupFunction(StringSE pattern, Resource location) resources(String, Resource)で使用されるリソース検索関数を返します。static RouterFunction<ServerResponse> 指定されたパターンに一致するリクエストを、指定されたルートの場所を基準としたリソースにルーティングします。static RouterFunction<ServerResponse> resources(StringSE pattern, Resource location, BiConsumerSE<Resource, HttpHeaders> headersConsumer) 指定されたパターンに一致するリクエストを、指定されたルートの場所を基準としたリソースにルーティングします。static RouterFunction<ServerResponse> resources(FunctionSE<ServerRequest, Mono<Resource>> lookupFunction) 提供された検索機能を使用してリソースにルーティングします。static RouterFunction<ServerResponse> resources(FunctionSE<ServerRequest, Mono<Resource>> lookupFunction, BiConsumerSE<Resource, HttpHeaders> headersConsumer) 提供された検索機能を使用してリソースにルーティングします。static RouterFunctions.Builderroute()WebFlux ビルダースタイルのインターフェースを通じてルーター関数を作成するための検出可能な方法を提供します。static <T extends ServerResponse>
RouterFunction<T> route(RequestPredicate predicate, HandlerFunction<T> handlerFunction) 指定されたリクエスト述語が適用される場合、指定されたハンドラー関数にルーティングします。static HttpHandlertoHttpHandler(RouterFunction<?> routerFunction) static HttpHandlertoHttpHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数をHttpHandlerに変換します。static WebHandlertoWebHandler(RouterFunction<?> routerFunction) 指定されたルーター関数をWebHandlerに変換します。static WebHandlertoWebHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数をWebHandlerに変換します。
フィールドの詳細
REQUEST_ATTRIBUTE
ServerRequestを含むServerWebExchange属性の名前。URI_TEMPLATE_VARIABLES_ATTRIBUTE
URI テンプレートマップを含むServerWebExchange属性の名前。変数名を値にマッピングします。MATCHING_PATTERN_ATTRIBUTE
一致するパターンを含むattributeの名前 (PathPatternとして)。
コンストラクターの詳細
RouterFunctions
public RouterFunctions()
メソッドの詳細
route
WebFlux ビルダースタイルのインターフェースを通じてルーター関数を作成するための検出可能な方法を提供します。- 戻り値:
- ルーター関数ビルダー
- 導入:
- 5.1
route
public static <T extends ServerResponse> RouterFunction<T> route(RequestPredicate predicate, HandlerFunction<T> handlerFunction) 指定されたリクエスト述語が適用される場合、指定されたハンドラー関数にルーティングします。たとえば、次の例では、"/user" の GET リクエストを
userControllerのlistUsersメソッドにルーティングします。RouterFunction<ServerResponse> route = RouterFunctions.route(RequestPredicates.GET("/user"), userController::listUsers);- 型パラメーター:
T- ハンドラー関数によって返されるレスポンスの型- パラメーター:
predicate- テストする述語handlerFunction- 述語が適用される場合にルーティングするハンドラー関数- 戻り値:
predicateがtrueと評価された場合にhandlerFunctionにルーティングするルーター関数- 関連事項:
nest
public static <T extends ServerResponse> RouterFunction<T> nest(RequestPredicate predicate, RouterFunction<T> routerFunction) 指定されたリクエスト述語が適用される場合、指定されたルーター関数にルーティングします。メソッドを使用してネストされたルートを作成します。ネストされたルートでは、ルートのグループが共通のパス(プレフィックス)、ヘッダー、その他のリクエスト述語を共有します。たとえば、次の例では、まず GET の場合は
listUsers、POST の場合はcreateUserに解決される合成ルートを作成します。この合成ルートは "/user" パス述語でネストされ、"/user" への GET リクエストではユーザーがリストされ、"/user" への POST リクエストでは新しいユーザーが作成されます。RouterFunction<ServerResponse> userRoutes = RouterFunctions.route(RequestPredicates.method(HttpMethod.GET), this::listUsers) .andRoute(RequestPredicates.method(HttpMethod.POST), this::createUser); RouterFunction<ServerResponse> nestedRoute = RouterFunctions.nest(RequestPredicates.path("/user"), userRoutes);- 型パラメーター:
T- ハンドラー関数によって返されるレスポンスの型- パラメーター:
predicate- テストする述語routerFunction- ネストされたルーター関数- 戻り値:
predicateがtrueと評価された場合にrouterFunctionにルーティングするルーター関数- 関連事項:
resource
public static RouterFunction<ServerResponse> 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
public static RouterFunction<ServerResponse> 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
指定されたパターンに一致するリクエストを、指定されたルートロケーションを基準としたリソースにルーティングします。例:Resource location = new FileUrlResource("public-resources/"); RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);- パラメーター:
pattern- マッチングするパターンlocation- リソースを解決する必要のある場所のディレクトリ- 戻り値:
- リソースにルーティングするルーター関数
- 関連事項:
resources
public static RouterFunction<ServerResponse> 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
- 関連事項:
resourceLookupFunction
public static FunctionSE<ServerRequest, Mono<Resource>> resourceLookupFunction(StringSE pattern, Resource location) resources(String, Resource)で使用されるリソース検索関数を返します。返される関数は、任意の組み合わせSEで使用できます。たとえば、検索関数が一致しない場合にデフォルトのリソースを返すには、次のように記述します。Mono<Resource> defaultResource = Mono.just(new ClassPathResource("index.html")); Function<ServerRequest, Mono<Resource>> lookupFunction = RouterFunctions.resourceLookupFunction("/resources/**", new FileUrlResource("public-resources/")) .andThen(resourceMono -> resourceMono.switchIfEmpty(defaultResource)); RouterFunction<ServerResponse> resources = RouterFunctions.resources(lookupFunction);- パラメーター:
pattern- マッチングするパターンlocation- リソースを解決する必要のある場所のディレクトリ- 戻り値:
- 指定されたパラメーターのデフォルトのリソース検索関数。
- 関連事項:
resources
public static RouterFunction<ServerResponse> resources(FunctionSE<ServerRequest, Mono<Resource>> lookupFunction) 提供されたルックアップ関数を使用してリソースにルーティングします。ルックアップ関数が指定されたリクエストに対してResourceを提供する場合、GET、HEAD、OPTIONS リクエストを処理するHandlerFunctionを使用して公開されます。- パラメーター:
lookupFunction-Resourceを提供する機能- 戻り値:
- リソースにルーティングするルーター関数
resources
public static RouterFunction<ServerResponse> resources(FunctionSE<ServerRequest, Mono<Resource>> lookupFunction, BiConsumerSE<Resource, HttpHeaders> headersConsumer) 提供されたルックアップ関数を使用してリソースにルーティングします。ルックアップ関数が指定されたリクエストに対してResourceを提供する場合、GET、HEAD、OPTIONS リクエストを処理するHandlerFunctionを使用して公開されます。- パラメーター:
lookupFunction-Resourceを提供する機能headersConsumer- 提供されるリソースの HTTP ヘッダーへのアクセスを提供します- 戻り値:
- リソースにルーティングするルーター関数
- 導入:
- 6.1
toHttpHandler
デフォルトの戦略を使用して、指定されたルーター関数をHttpHandlerに変換します。返されたハンドラーは、次の環境で実行するように適応できます。
- サーブレットコンテナーの場合は
ServletHttpHandlerAdapterを使用する - Reactor Netty の場合は
ReactorHttpHandlerAdapterを使用します
HttpWebHandlerAdapterはWebHandlerも実装しているため、WebHttpHandlerBuilderを介して追加のフィルターと例外ハンドラーを登録できることに注意してください。- パラメーター:
routerFunction- 変換するルーター関数- 戻り値:
- 指定されたルーター関数を使用して HTTP リクエストを処理する HTTP ハンドラー
- サーブレットコンテナーの場合は
toHttpHandler
public static HttpHandler toHttpHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数をHttpHandlerに変換します。返されたハンドラーは、次の環境で実行するように適応できます。
- サーブレットコンテナーの場合は
ServletHttpHandlerAdapterを使用する - Reactor Netty の場合は
ReactorHttpHandlerAdapterを使用します
- パラメーター:
routerFunction- 変換するルーター関数strategies- 使用する戦略- 戻り値:
- 指定されたルーター関数を使用して HTTP リクエストを処理する HTTP ハンドラー
- サーブレットコンテナーの場合は
toWebHandler
- パラメーター:
routerFunction- 変換するルーター関数- 戻り値:
- 指定されたルーター関数を使用して Web リクエストを処理する Web ハンドラー
toWebHandler
public static WebHandler toWebHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数をWebHandlerに変換します。- パラメーター:
routerFunction- 変換するルーター関数strategies- 使用する戦略- 戻り値:
- 指定されたルーター関数を使用して Web リクエストを処理する Web ハンドラー
changeParser
public static <T extends ServerResponse> RouterFunction<T> changeParser(RouterFunction<T> routerFunction, PathPatternParser parser) 指定されたルーター関数のPathPatternParserを変更します。このメソッドは、PathPatternParserプロパティをデフォルトから変更するために使用できます。たとえば、大文字と小文字の区別を変更するなどです。- 型パラメーター:
T- ハンドラー関数によって返されるレスポンスの型- パラメーター:
routerFunction- パーサーを変更するルーター関数parser- 変更するパーサー。- 戻り値:
- ルーター変更機能