web-dev-qa-db-ja.com

Spring Boot Webclientの取得と交換

Spring bootプロジェクトでWebClientを最近使用し始めました。誰かがexchangeretrieveWebClientメソッドの違い/使用法に少し光を当てることができますか?.

私はexchangeMono<ClientResponse>を返し、retrieveResponseSpecを返すことを理解しています。これらのそれぞれをいつ/なぜ使用する必要があるのか​​を知りたいだけです。

どうもありがとう。

7
Abdullah Khan

@ JArgenteの回答に追加します。

retrieve() メソッドの公式ドキュメントによると:

HTTPリクエストを実行し、レスポンスボディを取得します。

...

このメソッドは、exchange()を使用し、ClientResponseを介して応答本文をデコードするためのショートカットです。

および exchange() メソッド

HTTPリクエストを実行し、レスポンスステータスとヘッダーでClientResponseを返します。次に、応答のメソッドを使用して本体を消費できます。


RetrieveメソッドはClientResponseオブジェクトをデコードし、使用できる既製のオブジェクトを渡します。例外を処理するための非常に素晴らしいAPIはありません。

ただし、その一方で、exchangeメソッドは応答ステータスとヘッダーとともにClientResponseオブジェクト自体を渡します。交換メソッドを使用すると、応答オブジェクトをきめ細かく制御でき、応答オブジェクトと例外をより適切に処理できます。

APIを使いたい場合は、retrieve()を使用します。

応答オブジェクト、ヘッダー、および例外をより適切に制御したい場合は、exchange()

1
Abdullah Khan