Method for Automatic APIM Swagger Update Upon K8s Pod Deployment
概要
このガイドでは、バックエンドサービスがKubernetesポッドとしてデプロイされるたびに、APIMシステム内のAPIのSwagger(OpenAPI)ドキュメントを自動的に更新する方法を説明します。このプロセスは、CI/CDパイプラインで役立ち、開発者ポータルと管理コンソールの両方が常に最新のAPI仕様を反映することを保証します。
概念
Kubernetes環境でSwagger定義が更新されたAPIが再デプロイされると、APIMシステムはドキュメントを自動的に更新しません。これを解決するために、APIMが提供する組み込みAPIを使用してSwaggerの更新をプログラム的にトリガーできます。これにより、開発者ポータルと管理コンソールの両方でドキュメントの自動同期が可能になります。
できること
管理者またはDevOpsエンジニアとして、次のことができます:
- APIMコンソールからデプロイされたAPIのapi_idを取得する
- Swaggerの更新をトリガーするために内部APIM APIを呼び出す
- すべてのポータルでドキュメントが更新されたことを確認する
ステップ1: APIの詳細を確認し、api_idを取得する
ドキュメントの更新をリクエストするには、まずターゲットAPIのapi_idが必要です。
- ナビゲート: APIM > API管理
- 更新したいAPIをクリックして詳細ページを開きます。
- 赤い枠で示された情報アイコンをクリックします。
これにより、APIメタデータを表示するポップアップウィンドウが開きます。メタデータには以下が含まれます:
- project_id
- api_id
- gateway_id
ステップ2: APIドキュメントの更新をトリガーする
以下のcurlコマンドを使用して、Swaggerドキュメントを更新するAPIM内部APIを呼び出します。
curl -X 'POST' 'https://`<APIM Console K8s DNS>`/apim/org/default/spc/all/restApi/deployV2?api_id=`<your-api-id>`&swagger_latest_update=true' \
-H 'accept: application/json' \
-H 'x-apim-key: `<your-apim-key>`' \
-H 'Content-Type: application/json' \
-d '`{ "description": "APIM REST API - API Swagger Update" }`'
必要なパラメータ
パラメータ | 説明 |
---|---|
APIM Console K8s DNS | APIMコンソールのKubernetes DNSアドレス |
api_id | ステップ1で取得したAPIのID |
x-apim-key | 内部エンドポイントを呼び出す権限を持つAPIキー |
description | (オプション)更新操作のためのメモ |
注記
URL内のapi_idの値を、以前に取得した正しい値に置き換えることを忘れないでください。同様に、DNSアドレスとAPIキーも置き換えてください。
次に何が起こるか?
APIコールが行われると:
- APIのSwaggerドキュメントは、開発者ポータルとAPIMコンソールの両方で更新されます
- ドキュメントにアクセスするユーザーは最新のバージョンを見ることができます
- これは、すべてのデプロイ後にドキュメントのメンテナンスを自動化するためにCI/CDパイプラインに組み込むことができます