インターフェース | 説明 |
---|---|
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 クライアント側ランタイム処理例外(例: |
JAX-RS クライアント API は、Web リソースにアクセスするために使用される Java ベースの API です。JAX-RS を使用して実装されたリソースに制限されません。plain HTTP communication API
SE と比較してより高いレベルの抽象化と、JAX-RS 拡張プロバイダーとの統合を提供し、HTTP の既存の十分に確立されたクライアント側実装を活用する再利用可能なクライアント側ソリューションの簡潔で効率的な実装を可能にします。ベースのコミュニケーション。
Client
インスタンスをブートストラップするために使用される ClientBuilder
です。configurable
は、基盤となる通信インフラストラクチャを管理し、Web リソースにアクセスするためのルートオブジェクトとして機能する重いオブジェクトです。次の例は、Client
インスタンスのブートストラップと構成を示しています。Client client = ClientBuilder.newClient(); client.property("MyProperty", "MyValue") .register(MyProvider.class) .register(MyFeature.class);
"http://example.org/hello"
で識別されるリソースの text/plain
表現を取得します。Client client = ClientBuilder.newClient(); Response res = client.target("http://example.org/hello").request("text/plain").get();概念的には、リクエストを送信するために必要な手順は次のとおりです。
Client
インスタンスを取得する 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(); } });
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.