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
- ターゲットフラックスをデコードする要素の型 ResponseEntity
<T> reactor.core.publisher.Mono<ResponseEntity<ListSE<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
ParameterizedTypeReference
を使用した toEntity(Class)
のバリアント。T
- ボディ要素型 elementTypeRef
- ターゲットフラックスをデコードする要素の型 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
- ターゲットフラックスをデコードする要素の型 ResponseEntity
<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(ParameterizedTypeReference<T> elementTypeReference)
ParameterizedTypeReference
を使用した toEntityFlux(Class)
のバリアント。T
- ボディ要素型 elementTypeReference
- ターゲットフラックスをデコードする要素の型 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
ResponseEntity
reactor.core.publisher.Mono<ResponseEntity<VoidSE>> toBodilessEntity()
ResponseEntity
を返します。エラーレスポンス(ステータスコード 4xx または 5xx)の場合、Mono
は WebClientException
を発行します。onStatus(Predicate, Function)
を使用して、エラーレスポンス処理をカスタマイズします。ResponseEntity