Mule 3.x アプリケーションで API Autodiscovery を設定するには、次の要件を満たす必要があります。
API Manager で API を使用できるようにする
Mule アプリケーションとペアにする API は、API Manager で使用できる必要があります。
次のどちらかで対応してください。
-
Exchange に API をパブリッシュして、そこから API Manager にインポートする。
「Exchange から API を管理する方法」を参照してください。 -
マシンから直接インポートする。
詳細は、「API インスタンスをインポートする方法」を参照してください。
API Manager は、上記のタスクで生成した API 参照名とバージョンを公開します。
これらの API 参照名とバージョンは、アプリケーションとペアにする API を識別するために Autodiscovery 要素で必要になります。
Mule Runtime で Anypoint Platform 組織のログイン情報を設定する
Mule アプリケーションで Autodiscovery を使用するには、Anypoint Platform のログイン情報がすでに設定されている状態で Runtime を開始する必要があります。
デプロイメント対象に基づいて組織のログイン情報を設定する方法については、「Mule Runtime 3 の組織のログイン情報の設定」を参照してください。
Mule アプリケーションでの Autodiscovery 要素の設定
Mule アプリケーションのコード内で、api-gateway:auto-discovery 要素を設定する必要があります。
Autodiscovery 要素は、API Manager のペアにする特定の API を参照します。
| API のプロキシエンドポイントを設定している場合、自動生成されたプロキシは Autodiscovery 要素で適切に設定されます。 |
<api-platform-gw:api
apiName="${apiName}" (1)
version="${apiVersion}" (2)
flowRef="proxy" (3)
apikitRef="api-config"/> (4)
| 1 | UUID (API Manager によって API に割り当てられたグループ ID と Exchange アセット ID) を使用して ${apiName} を設定します。 |
| 2 | API バージョン (API Manager によって API に割り当てられたバージョン名とインスタンス ID または表示ラベル) を使用して ${apiVersion} を設定します。 |
| 3 | API Manager の API とペアにするフローを参照するように flowRef 要素を設定します。 |
| 4 | APIkit を使用する場合、リソースレベルでポリシーを適用するには、この値を設定する必要があります。そのようにしないと、ポリシーがリソースレベルで機能しません。 |
${apiName} および ${apiVersion} を特定の値に置き換えるか、キー - 値形式 (apiName=[your-specific-value]) で値を定義する config.properties ファイルを作成して、この設定の ${apiName} および ${apiVersion} として参照できます。
これは、Anypoint Studio の UI を使用して設定することもできます。
-
既存のフローで、Mule 設定ファイルエディターの [Global Elements (グローバル要素)] タブを選択します。
-
[Create (作成)] ボタンをクリックし、API Autodiscovery グローバル要素を探します。
-
APIname、バージョン、フロー参照を設定します。
${apiName} および ${apiVersion} 値を使用して、config.properties ファイルから参照することもできます。
アプリケーションで要素が定義され、Anypoint Platform のログイン情報でランタイムが設定されたら、Mule Runtime は、API Manager で定義された API 設定を自動的に追跡して最新の状態に保ちます。