| インターフェース | 説明 |
|---|---|
| AsyncInvoker | HTTP メソッドの非同期呼び出しのための統一インターフェース。 |
| Client | クライアントは、返されたレスポンスを消費するためにクライアントリクエストを作成および実行するために使用される流れるような API への主要なエントリポイントです。 |
| ClientRequestContext | クライアントリクエストフィルターコンテキスト。 |
| ClientRequestFilter | クライアントリクエストフィルターによって実装される拡張インターフェース。 |
| ClientResponseContext | クライアントレスポンスフィルターコンテキスト。 |
| ClientResponseFilter | クライアントレスポンスフィルターによって実装される拡張インターフェース。 |
| CompletionStageRxInvoker | リアクティブな呼び出し元ベースの CompletionStageSE。 |
| Invocation | クライアントリクエストの呼び出し。 |
| Invocation.Builder | クライアントリクエスト呼び出しビルダー。 |
| InvocationCallback<RESPONSE> | 呼び出し処理から非同期処理イベントを受け取るために実装できるコールバック。 |
| RxInvoker<T> | HTTP メソッドのリアクティブな呼び出しのための統一されたインターフェース。 |
| RxInvokerProvider<T extends RxInvoker> | RxInvoker プロバイダー。 |
| SyncInvoker | HTTP メソッドの同期呼び出し用の統一インターフェース。 |
| WebTarget | リソース URI によって識別されるリソースターゲット。 |
| クラス | 説明 |
|---|---|
| ClientBuilder | Client インスタンスのブートストラップに使用されるクライアント API へのメインエントリポイント。 |
| Entity<T> | 関連するバリアント情報を含むメッセージエンティティをカプセル化します。 |
| 例外 | 説明 |
|---|---|
| ResponseProcessingException | レスポンス処理が失敗したことを示すためにスローされたクライアント側ランタイム処理例外(例: |
plain HTTP communication APISE と比較してより高いレベルの抽象化と拡張プロバイダーとの統合を提供します。クライアント API は、REST アーキテクチャスタイルの主要な制約である Uniform Interface Constraint および関連するデータ要素をクライアント側の Java アーティファクトとしてカプセル化し、複数の拡張ポイントを定義することでプラグ可能なアーキテクチャをサポートします。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 invs = Arrays.asList(inv1, inv2);
// Executed by the submitter
Collection ress = Collections.transform(invs, new F() {
public Response apply(Invocation inv) {return inv.invoke(); }
});
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.