61.5. クライアント応答フィルター
概要 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、クライアント応答フィルター を実装して登録する方法を説明します。これは、クライアント側で受信応答メッセージをインターセプトするために使用されます。クライアント応答フィルターは、クライアント側でのあらゆる種類の汎用的な応答処理に使用できます。
ClientResponseFilter インターフェイス リンクのコピーリンクがクリップボードにコピーされました!
javax.ws.rs.client.ClientResponseFilter インターフェイスは以下のように定義されます。
ClientResponseFilter を実装することで、クライアント側で ClientResponse エクステンションポイントのフィルターを作成できます。これは、サーバーから受信した後にレスポンスメッセージをフィルタリングします。
ClientResponseContext インターフェイス リンクのコピーリンクがクリップボードにコピーされました!
ClientResponseFilter の filter メソッドは、型 javax.ws.rs.client.ClientRequestContext の引数 (「ClientRequestContext インターフェイス」を参照) と型 javax.ws.rs.client.ClientResponseContext の引数 (送信レスポンスメッセージとその関連データにアクセスするために使用できる) の 2 つの引数を受け取ります。
ClientResponseContext インターフェイスは以下のように定義されます。
サンプル実装 リンクのコピーリンクがクリップボードにコピーされました!
ClientResponse エクステンションポイントのクライアントレスポンスフィルター (つまり、サーバーからレスポンスメッセージを受信した後にフィルターが実行された場合) を実装するには、ClientResponseFilter インターフェイスを実装するクラスを定義します。
たとえば、以下のコードは、ClientResponse エクステンションポイントにインストールされる単純なクライアントレスポンスフィルターの例を示しています。ここで、優先度は 20 になります。
クライアント応答フィルターの登録 リンクのコピーリンクがクリップボードにコピーされました!
JAX-RS 2.0 クライアント API を使用すると、クライアントレスポンスフィルターを javax.ws.rs.client.Client オブジェクトまたは javax.ws.rs.client.WebTarget オブジェクトに直接登録できます。そのため、クライアント要求フィルターはオプションで異なるスコープに適用できるので、このフィルターの影響を受けるのは、特定の URI パスのみです。
たとえば、以下のコードは、client オブジェクトを使用して実行されたすべての呼び出しに適用されるように SampleClientResponseFilter フィルターを登録する方法を示しています。