注釈付き API オブジェクトを作成する前に、RESTEasy クライアントにネットワーク経路を設定します。型付き API プロキシは Java オブジェクトであり、フォワードネットワーク仲介者ではありません。

import jakarta.ws.rs.client.ClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;

ResteasyClientBuilder builder =
    (ResteasyClientBuilder) ClientBuilder.newBuilder();

ResteasyClient client = builder
    .defaultProxy("proxy.example.net", 8080, "http")
    .build();

MyApi api = client
    .target("https://api.example.net")
    .proxy(MyApi.class);

これは RESTEasy 6.2 の Jakarta API で、RESTEasy がインストール済みのクライアントプロバイダーであり、MyApi はアプリケーションですでに定義されています。プロキシの引数はホスト名、整数ポート、プロキシのトランスポートスキームです。許可されたパブリック API リクエストには、サービス内の対応する HTTP エンドポイントまたは HTTP プロキシ一覧 を使用してください。API の宛先は target に保ちます。HTTPS の API でも HTTP プロキシを使用できます。

型付きプロキシの呼び出しの間はクライアントを存続させ、作業完了時に閉じます。すでに閉じたクライアントスコープから API オブジェクトを返すと、トランスポートを持たない状態になります。

そのトランスポートの所有者を決めます。ビルダーのドキュメントは既定の Apache HTTP Client 統合について説明しています。ClientHttpEngine を指定すると境界が変わります。httpEngine はビルダーの SSL と接続固有の構成を上書きします。プロキシと TLS はそのエンジンの対応インターフェースで設定してください。

ClientExecutor ベースの古い例は、代わりにラップされた Apache クライアントを構成します。Jakarta ビルダーに貼り付けるのではなく、その世代に合わせてください。

どちらの分岐でも、API のホスト名を TLS 識別子として保持し、検証を有効にしてください。プロキシ認証、API ログイン、証明書の信頼は別々の要件です。経路だけではすべての認証方式を提供しません。

関連記事