パッケージ jakarta.ws.rs.client
JAX-RS クライアント API
JAX-RS クライアント API は、Web リソースにアクセスするために使用される Java ベースの API です。JAX-RS を使用して実装されたリソースに制限されません。plain HTTP communication API
SE と比較してより高いレベルの抽象化と、JAX-RS 拡張プロバイダーとの統合を提供し、HTTP の既存の十分に確立されたクライアント側実装を活用する再利用可能なクライアント側ソリューションの簡潔で効率的な実装を可能にします。ベースのコミュニケーション。
クライアント API のブートストラップと構成
API への主なエントリポイントは、Client
インスタンスをブートストラップするために使用される ClientBuilder
です。configurable
は、基盤となる通信インフラストラクチャを管理し、Web リソースにアクセスするためのルートオブジェクトとして機能する重いオブジェクトです。次の例は、Client
インスタンスのブートストラップと構成を示しています。Client client = ClientBuilder.newClient(); client.property("MyProperty", "MyValue") .register(MyProvider.class) .register(MyFeature.class);
Web リソースへのアクセス
Web リソースは、メソッド呼び出しがチェーン化され、最終的に HTTP リクエストを送信する Fluent API を使用してアクセスできます。次の例では、"http://example.org/hello"
で識別されるリソースの text/plain
表現を取得します。Client client = ClientBuilder.newClient(); Response res = client.target("http://example.org/hello").request("text/plain").get();概念的には、リクエストを送信するために必要な手順は次のとおりです。
Client
インスタンスを取得する- Web リソースを指す
WebTarget
を作成する build
リクエスト- レスポンスを直接取得するリクエストを送信するか、後で送信するために準備された
Invocation
を取得します
WebTarget
インスタンスは、具体的な URI にバインドされています。"http://example.org/messages/123"
、または URI テンプレート(例: "http://example.org/messages/{id}"
。このようにして、単一のターゲットが特定のリソースを指すか、後で具体的なリソースを派生させることができるリソースのより大きなグループ(たとえば、共通の構成を共有する)を表すことができます。// Parent target for all messages WebTarget messages = client.target("http://example.org/messages/{id}"); // New target for http://example.org/messages/123 WebTarget msg123 = messages.resolveTemplate("id", 123); // New target for http://example.org/messages/456 WebTarget msg456 = messages.resolveTemplate("id", 456);
一般的な呼び出し
Invocation
は、準備され、実行の準備ができているリクエストです。呼び出しは、作成者と提出者の間の関心事の分離を可能にする汎用インターフェースを提供します。特に、サブミッターは呼び出しがどのように準備されたかを知る必要はなく、同期で実行するか非同期で実行するかを知るだけです。Invocation inv1 = client.target("http://example.org/atm/balance") .queryParam("card", "111122223333").queryParam("pin", "9876") .request("text/plain").buildGet(); Invocation inv2 = client.target("http://example.org/atm/withdrawal") .queryParam("card", "111122223333").queryParam("pin", "9876") .request().buildPost(text("50.0"))); Collection<Invocation> invs = Arrays.asList(inv1, inv2); // Executed by the submitter Collection<Response> ress = Collections.transform(invs, new F<Invocation, Response>() { public Response apply(Invocation inv) {return inv.invoke(); } });
インターフェースのサマリー インターフェース 説明 AsyncInvoker HTTP メソッドの非同期呼び出しのための統一インターフェース。Client クライアントは、返されたレスポンスを消費するためにクライアントリクエストを作成および実行するために使用される流れるような API への主要なエントリポイントです。ClientRequestContext クライアントリクエストフィルターコンテキスト。ClientRequestFilter クライアントリクエストフィルターによって実装される拡張インターフェース。ClientResponseContext クライアントレスポンスフィルターコンテキスト。ClientResponseFilter クライアントレスポンスフィルターによって実装される拡張インターフェース。CompletionStageRxInvoker リアクティブな呼び出し元ベースのCompletionStage
SE。Invocation クライアントリクエストの呼び出し。Invocation.Builder クライアントリクエスト呼び出しビルダー。InvocationCallback<RESPONSE> 呼び出し処理から非同期処理イベントを受け取るために実装できるコールバック。RxInvoker<T> HTTP メソッドのリアクティブな呼び出しのための統一されたインターフェース。RxInvokerProvider<T extends RxInvoker> RxInvoker
プロバイダー。SyncInvoker HTTP メソッドの同期呼び出し用の統一インターフェース。WebTarget リソース URI によって識別されるリソースターゲット。クラスのサマリー クラス 説明 ClientBuilder Client
インスタンスのブートストラップに使用されるクライアント API へのメインエントリポイント。Entity<T> 関連するバリアント情報を含むメッセージエンティティをカプセル化します。例外のサマリー 例外 説明 ResponseProcessingException レスポンス処理が失敗したことを示すためにスローされる JAX-RS クライアント側ランタイム処理例外(例: