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)ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(ClassSE<T> elementClass) 本体を指定されたターゲット型にデコードします。 |
<T> reactor.core.publisher.Mono<T> | bodyToMono(ParameterizedTypeReference<T> elementTypeRef)ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。 |
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)ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。 |
<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> | toEntityFlux(BodyExtractor<reactor.core.publisher.Flux<T>,? super ClientHttpResponse> bodyExtractor)BodyExtractor を使用した toEntityFlux(Class) のバリアント。 |
<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> | toEntityFlux(ClassSE<T> elementType) 指定された型の要素の Flux に本体がデコードされた ResponseEntity を返します。 |
<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> | toEntityFlux(ParameterizedTypeReference<T> elementTypeReference)ParameterizedTypeReference を使用した toEntityFlux(Class) のバリアント。 |
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> | toEntityList(ClassSE<T> elementClass) 指定された型の要素の List に本体がデコードされた ResponseEntity を返します。 |
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> | toEntityList(ParameterizedTypeReference<T> elementTypeRef)ParameterizedTypeReference を使用した toEntity(Class) のバリアント。 |
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 は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。T - 対象の体型 elementClass - デコードする型 <T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。T - 対象の体型 elementTypeRef - デコードする型 <T> reactor.core.publisher.Flux<T> bodyToFlux(ClassSE<T> elementClass)
Flux にデコードします。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。T - ボディ要素型 elementClass - デコードする要素の型 <T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。T - ボディ要素型 elementTypeRef - デコードする要素の型 <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ClassSE<T> bodyClass)
ResponseEntity を返します。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。T - レスポンス本体型 bodyClass - 予想されるレスポンス本文型 ResponseEntity <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)
ParameterizedTypeReference を使用した bodyToMono(Class) のバリアント。T - レスポンス本体型 bodyTypeReference - 予想されるレスポンス本文型 ResponseEntity <T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> toEntityList(ClassSE<T> elementClass)
List に本体がデコードされた ResponseEntity を返します。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。T - ボディ要素型 elementClass - ターゲット Flux をデコードする要素の型 ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
ParameterizedTypeReference を使用した toEntity(Class) のバリアント。T - ボディ要素型 elementTypeRef - ターゲット Flux をデコードする要素の型 ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(ClassSE<T> elementType)
Flux に本体がデコードされた ResponseEntity を返します。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。 注意 : 本体を表す Flux はサブスクライブする必要があります。サブスクライブしないと、関連するリソースが解放されません。
T - ボディ要素型 elementType - ターゲット Flux をデコードする要素の型 ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(ParameterizedTypeReference<T> elementTypeReference)
ParameterizedTypeReference を使用した toEntityFlux(Class) のバリアント。T - ボディ要素型 elementTypeReference - ターゲット Flux をデコードする要素の型 ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(BodyExtractor<reactor.core.publisher.Flux<T>,? super ClientHttpResponse> bodyExtractor)
BodyExtractor を使用した toEntityFlux(Class) のバリアント。T - ボディ要素型 bodyExtractor - レスポンスから読み取る BodyExtractor ResponseEntityreactor.core.publisher.Mono<ResponseEntity<VoidSE>> toBodilessEntity()
ResponseEntity を返します。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono は WebClientException を発行します。onStatus(Predicate, Function) を使用して、エラーレスポンス処理をカスタマイズします。ResponseEntity