public interface ServerRequest
HandlerFunction
によって処理されるサーバー側の HTTP リクエストを表します。 ヘッダーと本文へのアクセスは、それぞれ ServerRequest.Headers
と body(BodyExtractor)
によって提供されます。
修飾子と型 | インターフェースと説明 |
---|---|
static interface | ServerRequest.Builder リクエストのビルダーを定義します。 |
static interface | ServerRequest.Headers HTTP リクエストのヘッダーを表します。 |
修飾子と型 | メソッドと説明 |
---|---|
default java.util.Optional<java.lang.Object> | attribute(java.lang.String name) リクエスト属性値が存在する場合は取得します。 |
java.util.Map<java.lang.String,java.lang.Object> | attributes() リクエスト属性の可変マップを取得します。 |
<T> T | body(BodyExtractor<T,? super ServerHttpRequest> extractor) 指定された BodyExtractor で本体を抽出します。 |
<T> T | body(BodyExtractor<T,? super ServerHttpRequest> extractor, java.util.Map<java.lang.String,java.lang.Object> hints) 指定された BodyExtractor とヒントを使用してボディを抽出します。 |
<T> reactor.core.publisher.Flux<T> | bodyToFlux(java.lang.Class<? extends T> elementClass) 本体を Flux に抽出します。 |
<T> reactor.core.publisher.Flux<T> | bodyToFlux(ParameterizedTypeReference<T> typeReference) 本体を Flux に抽出します。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(java.lang.Class<? extends T> elementClass) 本体を Mono に抽出します。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(ParameterizedTypeReference<T> typeReference) 本体を Mono に抽出します。 |
MultiValueMap<java.lang.String,HttpCookie> | cookies() このリクエストの Cookie を取得します。 |
static ServerRequest | create(ServerWebExchange exchange, java.util.List<HttpMessageReader<?>> messageReaders) 指定された ServerWebExchange およびメッセージリーダーに基づいて新しい ServerRequest を作成します。 |
ServerWebExchange | exchange() このリクエストのベースとなる Web エクスチェンジを取得します。 |
reactor.core.publisher.Mono<MultiValueMap<java.lang.String,java.lang.String>> | formData() Content-Type が "application/x-www-form-urlencoded" の場合はリクエストの本文からフォームデータを取得し、それ以外の場合は空のマップを取得します。 |
static ServerRequest.Builder | from(ServerRequest other) 指定されたリクエストのステータス、ヘッダー、Cookie を使用してビルダーを作成します。 |
ServerRequest.Headers | headers() このリクエストのヘッダーを取得します。 |
java.util.List<HttpMessageReader<?>> | messageReaders() このリクエストの本文の変換に使用されるリーダーを取得します。 |
default HttpMethod | method() HTTP メソッドを取得します。 |
java.lang.String | methodName() HTTP メソッドの名前を取得します。 |
reactor.core.publisher.Mono<MultiValueMap<java.lang.String,Part>> | multipartData() Content-Type が "multipart/form-data" の場合はマルチパートリクエストのパーツを取得し、それ以外の場合は空のマップを取得します。 |
default java.lang.String | path() リクエストパスを取得します。 |
default PathContainer | pathContainer() リクエストパスを PathContainer として取得します。 |
default java.lang.String | pathVariable(java.lang.String name) 指定された名前のパス変数があれば、それを取得します。 |
java.util.Map<java.lang.String,java.lang.String> | pathVariables() このリクエストのすべてのパス変数を取得します。 |
reactor.core.publisher.Mono<? extends java.security.Principal> | principal() リクエストに対して認証されたユーザーを取得します(存在する場合)。 |
default java.util.Optional<java.lang.String> | queryParam(java.lang.String name) 存在する場合、指定された名前を持つ最初のクエリパラメーターを取得します。 |
MultiValueMap<java.lang.String,java.lang.String> | queryParams() このリクエストのすべてのクエリパラメーターを取得します。 |
java.util.Optional<java.net.InetSocketAddress> | remoteAddress() 可能な場合、このリクエストが接続されているリモートアドレスを取得します。 |
reactor.core.publisher.Mono<WebSession> | session() このリクエストの Web セッションを取得します。 |
java.net.URI | uri() リクエスト URI を取得します。 |
UriBuilder | uriBuilder() この ServerRequest に関連付けられた URI から UriBuilderComponents を取得します。 |
@Nullable default HttpMethod method()
null
(たとえば非標準の HTTP メソッドの場合)java.lang.String methodName()
java.net.URI uri()
UriBuilder uriBuilder()
ServerRequest
に関連付けられた URI から UriBuilderComponents
を取得します。 注意 : 5.1 以降、このメソッドは、クライアントが発信したアドレスを指定する "Forwarded"
および "X-Forwarded-*"
ヘッダーを無視します。ForwardedHeaderFilter
を使用して、このようなヘッダーを抽出して使用するか、破棄することを検討してください。
default java.lang.String path()
default PathContainer pathContainer()
PathContainer
として取得します。ServerRequest.Headers headers()
MultiValueMap<java.lang.String,HttpCookie> cookies()
java.util.Optional<java.net.InetSocketAddress> remoteAddress()
java.util.List<HttpMessageReader<?>> messageReaders()
<T> T body(BodyExtractor<T,? super ServerHttpRequest> extractor)
BodyExtractor
で本体を抽出します。T
- 返される本体の型 extractor
- リクエストから読み取る BodyExtractor
body(BodyExtractor, Map)
<T> T body(BodyExtractor<T,? super ServerHttpRequest> extractor, java.util.Map<java.lang.String,java.lang.Object> hints)
BodyExtractor
とヒントを使用してボディを抽出します。T
- 返される本体の型 extractor
- リクエストから読み取る BodyExtractor
hints
- ボディ抽出のカスタマイズに使用する Jackson2CodecSupport.JSON_VIEW_HINT
などのヒントのマップ <T> reactor.core.publisher.Mono<T> bodyToMono(java.lang.Class<? extends T> elementClass)
Mono
に抽出します。T
- 要素型 elementClass
- Mono
の要素のクラス <T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> typeReference)
Mono
に抽出します。T
- 要素型 typeReference
- 予期されるレスポンスリクエスト型を説明する型参照 T
の本体を含む mono <T> reactor.core.publisher.Flux<T> bodyToFlux(java.lang.Class<? extends T> elementClass)
Flux
に抽出します。T
- 要素型 elementClass
- Flux
の要素のクラス <T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> typeReference)
Flux
に抽出します。T
- 要素型 typeReference
- 予想されるリクエスト本文の型を説明する型参照 T
の本体を含む flux default java.util.Optional<java.lang.Object> attribute(java.lang.String name)
name
- 属性名 java.util.Map<java.lang.String,java.lang.Object> attributes()
default java.util.Optional<java.lang.String> queryParam(java.lang.String name)
name
- パラメーター名 MultiValueMap<java.lang.String,java.lang.String> queryParams()
default java.lang.String pathVariable(java.lang.String name)
name
- 変数名 java.lang.IllegalArgumentException
- 指定された名前のパス変数がない場合 java.util.Map<java.lang.String,java.lang.String> pathVariables()
reactor.core.publisher.Mono<WebSession> session()
クライアントからリクエストされたセッション ID と一致するか、クライアントがインスタンスを指定しなかったため、または基になるセッションが期限切れになったために新しいセッション ID でインスタンスを返すことが常に保証されています。
このメソッドを使用しても、セッションは自動的には作成されません。
reactor.core.publisher.Mono<? extends java.security.Principal> principal()
reactor.core.publisher.Mono<MultiValueMap<java.lang.String,java.lang.String>> formData()
"application/x-www-form-urlencoded"
の場合はリクエストの本文からフォームデータを取得し、それ以外の場合は空のマップを取得します。 注意 : このメソッドを呼び出すと、リクエストの本文が完全に読み取られて解析され、結果の MultiValueMap
がキャッシュされるため、このメソッドを複数回呼び出しても安全です。
reactor.core.publisher.Mono<MultiValueMap<java.lang.String,Part>> multipartData()
"multipart/form-data"
の場合はマルチパートリクエストのパーツを取得し、それ以外の場合は空のマップを取得します。 注意 : このメソッドを呼び出すと、リクエストの本文が完全に読み取られて解析され、結果の MultiValueMap
がキャッシュされるため、このメソッドを複数回呼び出しても安全です。
ServerWebExchange exchange()
メモ: (ServerRequest
および ServerResponse
で提供されるメソッドを使用する代わりに)交換を直接操作すると、不規則な結果が生じる可能性があります。
static ServerRequest create(ServerWebExchange exchange, java.util.List<HttpMessageReader<?>> messageReaders)
ServerWebExchange
およびメッセージリーダーに基づいて新しい ServerRequest
を作成します。exchange
- 交換 messageReaders
- メッセージリーダー ServerRequest
static ServerRequest.Builder from(ServerRequest other)
other
- ステータス、ヘッダー、Cookie をコピーするレスポンス