public abstract class RouterFunctions extends ObjectSE
RouterFunction
を作成したり、RequestPredicate
および HandlerFunction
を指定して RouterFunction
を作成したり、既存のルーティング関数でさらにサブルーチン化したりするなど、ルーティング機能を公開します。 さらに、このクラスは RouterFunction
を HttpHandler
に変換できます。これは、Servlet 3.1+、Reactor、Undertow で実行できます。
修飾子と型 | クラスと説明 |
---|---|
static interface | RouterFunctions.Builder ルーター関数の検出可能なビルダーを表します。 |
static interface | RouterFunctions.Visitor ルーター関数の論理構造から通知を受け取ります。 |
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | MATCHING_PATTERN_ATTRIBUTE 一致するパターンを含む attribute の名前(PathPattern )。 |
static StringSE | REQUEST_ATTRIBUTE ServerRequest を含む ServerWebExchange 属性の名前。 |
static StringSE | URI_TEMPLATE_VARIABLES_ATTRIBUTE URI テンプレートマップを含む ServerWebExchange 属性の名前。変数名を値にマッピングします。 |
コンストラクターと説明 |
---|
RouterFunctions() |
修飾子と型 | メソッドと説明 |
---|---|
static <T extends ServerResponse> | changeParser(RouterFunction<T> routerFunction, PathPatternParser parser) 指定されたルーター関数の PathPatternParser を変更します。 |
static <T extends ServerResponse> | nest(RequestPredicate predicate, RouterFunction<T> routerFunction) 指定されたリクエスト述語が適用される場合、指定されたルーター関数にルーティングします。 |
static FunctionSE<ServerRequest,reactor.core.publisher.Mono<Resource>> | resourceLookupFunction(StringSE pattern, Resource location) resources(String, Resource) で使用されるリソース検索関数を返します。 |
static RouterFunction<ServerResponse> | resources(FunctionSE<ServerRequest,reactor.core.publisher.Mono<Resource>> lookupFunction) 提供された検索機能を使用してリソースにルーティングします。 |
static RouterFunction<ServerResponse> | resources(StringSE pattern, Resource location) 指定されたパターンに一致するリクエストを、指定されたルートの場所を基準としたリソースにルーティングします。 |
static RouterFunctions.Builder | route() ビルダースタイルのインターフェースを介してルーター関数を作成する発見可能な方法を提供します。 |
static <T extends ServerResponse> | route(RequestPredicate predicate, HandlerFunction<T> handlerFunction) 指定されたリクエスト述語が適用される場合、指定されたハンドラー関数にルーティングします。 |
static HttpHandler | toHttpHandler(RouterFunction<?> routerFunction) 指定されたルーター関数を HttpHandler に変換します。 |
static HttpHandler | toHttpHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数を HttpHandler に変換します。 |
static WebHandler | toWebHandler(RouterFunction<?> routerFunction) 指定されたルーター関数を WebHandler に変換します。 |
static WebHandler | toWebHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies) 指定された戦略を使用して、指定されたルーター関数を WebHandler に変換します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final StringSE REQUEST_ATTRIBUTE
ServerRequest
を含む ServerWebExchange
属性の名前。public static final StringSE URI_TEMPLATE_VARIABLES_ATTRIBUTE
ServerWebExchange
属性の名前。変数名を値にマッピングします。public static final StringSE MATCHING_PATTERN_ATTRIBUTE
attribute
の名前(PathPattern
)。public static RouterFunctions.Builder 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
にルーティングするルーター関数 RequestPredicates
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
にルーティングするルーター関数 RequestPredicates
public static RouterFunction<ServerResponse> resources(StringSE pattern, Resource location)
Resource location = new FileSystemResource("public-resources/"); RouterFunction<ServerResponse> resources = RouterFunctions.resources("/resources/**", location);
pattern
- マッチングするパターン location
- リソースを解決する必要のある場所のディレクトリ resourceLookupFunction(String, Resource)
public static FunctionSE<ServerRequest,reactor.core.publisher.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 FileSystemResource("public-resources/")) .andThen(resourceMono -> resourceMono.switchIfEmpty(defaultResource)); RouterFunction<ServerResponse> resources = RouterFunctions.resources(lookupFunction);
pattern
- マッチングするパターン location
- リソースを解決する必要のある場所のディレクトリ public static RouterFunction<ServerResponse> resources(FunctionSE<ServerRequest,reactor.core.publisher.Mono<Resource>> lookupFunction)
Resource
を提供する場合、GET、HEAD、OPTIONS リクエストを処理する HandlerFunction
を使用して公開されます。lookupFunction
- ServerRequest
を指定して Resource
を提供する関数 public static HttpHandler toHttpHandler(RouterFunction<?> routerFunction)
HttpHandler
に変換します。この変換ではデフォルトの戦略が使用されます。返されたハンドラー
ServletHttpHandlerAdapter
を使用した Servlet 3.1+ReactorHttpHandlerAdapter
を使用した ReactorUndertowHttpHandlerAdapter
を使用した Undertow。HttpWebHandlerAdapter
は WebHandler
も実装しているため、WebHttpHandlerBuilder
を介して追加のフィルターと例外ハンドラーを登録できることに注意してください。
routerFunction
- 変換するルーター関数 public static HttpHandler toHttpHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies)
HttpHandler
に変換します。 返された HttpHandler
ServletHttpHandlerAdapter
を使用した Servlet 3.1+ReactorHttpHandlerAdapter
を使用した ReactorUndertowHttpHandlerAdapter
を使用した Undertow。routerFunction
- 変換するルーター関数 strategies
- 使用する戦略 public static WebHandler toWebHandler(RouterFunction<?> routerFunction)
routerFunction
- 変換するルーター関数 public static WebHandler toWebHandler(RouterFunction<?> routerFunction, HandlerStrategies strategies)
WebHandler
に変換します。routerFunction
- 変換するルーター関数 strategies
- 使用する戦略 public static <T extends ServerResponse> RouterFunction<T> changeParser(RouterFunction<T> routerFunction, PathPatternParser parser)
PathPatternParser
を変更します。このメソッドを使用すると、PathPatternParser
プロパティをデフォルトから変更することができます (たとえば、大文字と小文字の区別を変更するなど)。T
- ハンドラー関数によって返されるレスポンスの型 routerFunction
- パーサーを変更するルーター関数 parser
- 変更するパーサー。