Mule 4.x アプリケーションで API 自動検出を設定するには、次の要件を満たす必要があります。
API Manager で API を使用できるようにする
Mule アプリケーションとペアにする API は、API Manager で使用できる必要があります。
次のどちらかで対応してください。
-
Exchange に API をパブリッシュして、そこから API Manager にインポートする。
「Exchange から API を管理する方法」を参照してください。 -
マシンから直接インポートする。
詳細は、「API インスタンスをインポートする方法」を参照してください。
API Manager は、インポートされた各 API の「API ID」識別子を生成します。
この API ID は、アプリケーションとペアにする API を識別するために自動検出要素で必要になります。
API Manager の設定
この手順は、デプロイ済み Mule アプリケーションを API プロキシ自体として使用するように API Manager に指示する場合に必要になります。
-
[Managing Type (管理種別)] で、[Basic Endpoint (基本エンドポイント)] を選択します。
-
デプロイ済み Mule アプリケーションを参照する実装 URI を追加します。
-
チェックマーク
Check this box if you are managing this API in Mule 4 or above を選択します。
Mule Runtime で Anypoint Platform 組織のログイン情報を設定する
Mule アプリケーションで自動検出を使用するには、Anypoint Platform のログイン情報がすでに設定されている状態で Mule Runtime Engine を開始する必要があります。 デプロイメント対象に基づいて組織のログイン情報を設定する方法については、「Mule Runtime 4 の組織のログイン情報の設定」を参照してください。
Mule アプリケーションでの自動検出要素の設定
Mule アプリケーションのコード内で、api-gateway:Autodiscovery 要素を設定する必要があります。
Autodiscovery 要素は、API Manager のペアにする特定の API を参照します。
| API のプロキシエンドポイントを設定している場合、自動生成されたプロキシは自動検出要素で適切に設定されます。 |
<api-gateway:autodiscovery
apiId="${apiId}" (1)
flowRef="myFlow" /> (2)
| 1 | API Manager が API に割り当てた API ID を使用して apiId を設定します。 |
| 2 | API Manager の API とペアにするフローを参照するように flowRef 要素を設定します。 |
${apiId} を特定の値に置き換えるか、キー - 値形式 (apiId=[your-specific-value]) で値を定義する config.properties ファイルを作成して、この設定の ${apiId} として参照できます。
これは、Anypoint Studio の UI を使用して設定することもできます。
-
既存のフローで、Mule 設定ファイルエディターの [Global Elements (グローバル要素)] タブを選択します。
-
[Create (作成)] ボタンをクリックし、API 自動検出グローバル要素を探します。
-
API ID とフロー参照を設定します。
${apiId} 値を使用して、config.properties ファイルから参照することもできます。
アプリケーションで要素が定義され、Anypoint Platform のログイン情報でランタイムが設定されたら、Mule Runtime は、API Manager で定義された API 設定を自動的に追跡して最新の状態に保ちます。
Mule 3.x 設定からの変更
API 自動検出要素の構文は、Mule 3.x から変更されていますが、その目的は変わりません。Mule アプリケーションの要素の形式は次のとおりです。
| Mule 3.x XML 要素 | Mule 4.x XML 要素 |
|---|---|
<api-platform-gw:api (…)/>。 |
<api-gateway:autodiscovery (…)/>。 |
Mule 4 では、API は API ID と、HTTP リスナーが定義されているフローへの参照によって識別されます。Mule 4 の apiId は、Mule 3.x 以前の自動検出要素を指定するために使用される apiName と apiVersion を置き換えます。