public static interface WebClient.ResponseSpec
修飾子と型 | メソッドと説明 |
---|---|
<T> reactor.core.publisher.Flux<T> | bodyToFlux(ClassSE<T> elementClass) 本体を Flux に抽出します。 |
<T> reactor.core.publisher.Flux<T> | bodyToFlux(ParameterizedTypeReference<T> elementTypeRef) 本体を Flux に抽出します。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(ClassSE<T> elementClass) 本体を Mono に抽出します。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(ParameterizedTypeReference<T> elementTypeRef) 本体を Mono に抽出します。 |
WebClient.ResponseSpec | onRawStatus(IntPredicateSE statusCodePredicate, FunctionSE<ClientResponse,reactor.core.publisher.Mono<? extends ThrowableSE>> exceptionFunction) 生のステータスコード値を処理する onStatus(Predicate, Function) のバリアント。 |
WebClient.ResponseSpec | onStatus(PredicateSE<HttpStatus> statusPredicate, FunctionSE<ClientResponse,reactor.core.publisher.Mono<? extends ThrowableSE>> exceptionFunction) 特定のエラーステータスコードをエラーシグナルにマップして、レスポンスではなく下流に伝搬する関数を提供します。 |
reactor.core.publisher.Mono<ResponseEntity<VoidSE>> | toBodilessEntity() レスポンスを、ステータスとヘッダーを含む遅延 ResponseEntity として返しますが、本文は返しません。 |
<T> reactor.core.publisher.Mono<ResponseEntity<T>> | toEntity(ClassSE<T> bodyClass) 遅延 ResponseEntity としてレスポンスを返します。 |
<T> reactor.core.publisher.Mono<ResponseEntity<T>> | toEntity(ParameterizedTypeReference<T> bodyTypeReference) 遅延 ResponseEntity としてレスポンスを返します。 |
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> | toEntityList(ClassSE<T> elementClass) ResponseEntity の遅延リストとしてレスポンスを返します。 |
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> | toEntityList(ParameterizedTypeReference<T> elementTypeRef) ResponseEntity の遅延リストとしてレスポンスを返します。 |
WebClient.ResponseSpec onStatus(PredicateSE<HttpStatus> statusPredicate, FunctionSE<ClientResponse,reactor.core.publisher.Mono<? extends ThrowableSE>> exceptionFunction)
デフォルトでは、一致するステータスハンドラーがない場合、ステータスコードが 400 以上のレスポンスは、ClientResponse.createException()
で作成された WebClientResponseException
にマップされます。
エラーとしてのステータスコードの処理を抑制し、それを通常のレスポンスとして処理するには、関数から Mono.empty()
を返します。その後、レスポンスはダウンストリームに伝搬されて処理されます。
エラーレスポンスを完全に無視し、レスポンスもエラーも伝播しないようにするには、filter
を使用するか、onErrorResume
ダウンストリームを追加します。例:
webClient.get() .uri("https://abc.com/account/123") .retrieve() .bodyToMono(Account.class) .onErrorResume(WebClientResponseException.class, ex -> ex.getRawStatusCode() == 404 ? Mono.empty() : Mono.error(ex));
statusPredicate
- レスポンスを一致させる exceptionFunction
- レスポンスをエラーシグナルにマッピングする ClientResponse.createException()
WebClient.ResponseSpec onRawStatus(IntPredicateSE statusCodePredicate, FunctionSE<ClientResponse,reactor.core.publisher.Mono<? extends ThrowableSE>> exceptionFunction)
onStatus(Predicate, Function)
のバリアント。これは、カスタムステータスコードに役立ちます。statusCodePredicate
- レスポンスを一致させる exceptionFunction
- レスポンスをエラーシグナルにマッピングする <T> reactor.core.publisher.Mono<T> bodyToMono(ClassSE<T> elementClass)
Mono
に抽出します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンス本体型 elementClass
- 予期されるレスポンス本体要素クラス WebClientResponseException
<T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
Mono
に抽出します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンス本体型 elementTypeRef
- 予期されるレスポンス本体要素型を説明する型参照 WebClientResponseException
<T> reactor.core.publisher.Flux<T> bodyToFlux(ClassSE<T> elementClass)
Flux
に抽出します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Flux
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンスの要素の型 elementClass
- レスポンスの要素のクラス WebClientResponseException
<T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
Flux
に抽出します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Flux
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンスの要素の型 elementTypeRef
- 予期されるレスポンス本体要素型を説明する型参照 WebClientResponseException
<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ClassSE<T> bodyClass)
ResponseEntity
として返します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンス本体型 bodyClass
- 予想されるレスポンス本文型 Mono
と ResponseEntity
<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)
ResponseEntity
として返します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- レスポンス本体型 bodyTypeReference
- 予想されるレスポンス本文の種類を説明する型参照 Mono
と ResponseEntity
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> toEntityList(ClassSE<T> elementClass)
ResponseEntity
の遅延リストとしてレスポンスを返します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- リスト内の要素の型 elementClass
- 予想されるレスポンス本文リスト要素クラス ResponseEntity
のリストを持つ Mono
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
ResponseEntity
の遅延リストとしてレスポンスを返します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。T
- リスト内の要素の型 elementTypeRef
- 予想されるレスポンス本文リスト要素の参照型 ResponseEntity
のリストを持つ Mono
reactor.core.publisher.Mono<ResponseEntity<VoidSE>> toBodilessEntity()
ResponseEntity
としてレスポンスを返します。デフォルトでは、レスポンスのステータスコードが 4xx または 5xx の場合、Mono
には WebClientException
が含まれます。これは onStatus(Predicate, Function)
でオーバーライドできます。このメソッドを呼び出すと、レスポンスの本文が解放されます。Mono
とボディレス ResponseEntity