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