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" }
'
### 必要なパラメータ \{#required-parameters}
| パラメータ | 説明 |
| --- | --- |
| APIM Console K8s DNS | APIMコンソールのKubernetes DNSアドレス |
| api_id | ステップ1で取得したAPIのID |
| x-apim-key | 内部エンドポイントを呼び出す権限を持つAPIキー |
| description | (オプション)更新操作のためのメモ |
:::note
URL内のapi_idの値を、以前に取得した正しい値に置き換えることを忘れないでください。DNSアドレスとAPIキーについても同様です。
:::
## 次に何が起こるか? \{#what-happens-next?}
API呼び出しが行われると:
- APIのSwaggerドキュメントは、Developer PortalとAPIM Consoleの両方で更新されます
- ドキュメントにアクセスするユーザーは最新のバージョンを見ることができます
- これは、すべてのデプロイメント後にドキュメントのメンテナンスを自動化するために、CI/CDパイプラインに組み込むことができます