チュートリアル: Visual Studio Code 用の Azure API Management 拡張機能を使用して API をインポートおよび管理する
適用対象: Consumption | Developer | Basic | Standard | Premium
このチュートリアルでは、Visual Studio Code 用の API Management 拡張機能を使用して、API Management の一般的な操作を行う方法について説明します。 使い慣れた Visual Studio Code 環境を使用して、API のインポート、更新、テスト、管理を行います。
学習内容は次のとおりです。
- API Management に API をインポートする
- API を編集する
- API Management のポリシーを適用する
- API のテスト
その他の API Management 機能の概要については、Azure portal を使用して API Management のチュートリアルを参照してください。
前提条件
- Azure API Management の用語を理解する。
- Visual Studio Code と最新の Visual Studio Code 用 Azure API Management 拡張機能が確実にインストール済みであること。
- API Management インスタンスを作成する。
API をインポートする
以下の例では、JSON 形式の OpenAPI 仕様を API Management にインポートします。 この例では、オープンソースの Petstore API をインポートします。
- Visual Studio Code のアクティビティ バーから Azure アイコンを選択します。
- 作成した API Management インスタンスをエクスプローラー ペインで展開します。
- [API] を右クリックし、 [Import from OpenAPI Link](OpenAPI リンクからインポート) を選択します。
- 確認を求められたら、次の値を入力します。
JSON 形式のコンテンツの OpenAPI リンク。 この例では「
https://petstore.swagger.io/v2/swagger.json
」とします。このファイルは、この例の API を実装するバックエンド サービスとそれがサポートする操作を指定します。
API Management インスタンス内で一意の API 名 (petstore など)。 この名前には、英文字、数字、ハイフンのみを含めることができます。 最初と最後の文字は、英数字にする必要があります。 API を呼び出す際のパスに、この名前が使用されます。
API は、正常にインポートされるとエクスプローラー ペインに表示され、利用できる API 操作が [Operations](操作) ノードに表示されます。
API を編集する
API は、Visual Studio Code で編集することができます。 たとえば、API の Resource Manager JSON 記述をエディター ウィンドウで編集し、API へのアクセスに使用される http プロトコル (次の切り取り領域で強調表示されている) を削除します。
OpenAPI 形式を編集するには、エクスプローラー ペインで API 名を右クリックし、 [Edit OpenAPI]\(OpenAPI の編集\) を選択します。 変更を行ってから、 [ファイル]>[保存] を選択します。
API にポリシーを適用する
API Management には、API 向けに構成できるポリシーが用意されています。 ポリシーはステートメントのコレクションです。 これらのステートメントは、API の要求または応答に対して順番に実行されます。 ポリシーは、グローバルにして API Management インスタンスのすべての API に適用することも、特定の製品、API、または API 操作に限定することもできます。
このセクションでは、一般的な受信および送信ポリシーを API に適用する方法について説明します。
エクスプローラー ペインで、インポートした petstore API の下の [ポリシー] を選択します。 エディター ウィンドウでポリシー ファイルが開きます。 このファイルによって構成されるポリシーの対象は、この API のすべての操作です。
次の内容でファイルを更新します。
<policies> <inbound> <rate-limit calls="3" renewal-period="15" /> <base /> </inbound> <outbound> <set-header name="Custom" exists-action="override"> <value>"My custom value"</value> </set-header> <base /> </outbound> <on-error> <base /> </on-error> </policies>
inbound
セクションのrate-limit
ポリシーは、API の呼び出し回数を 15 秒ごとに 3 回に制限します。outbound
セクションのset-header
ポリシーは、デモンストレーション用のカスタム応答ヘッダーを追加します。
ファイルを保存します。 確認を求められた場合は、[アップロード] を選択してファイルをクラウドにアップロードしてください。
API のテスト
API をテストするには、サブスクリプション キーを取得し、API Management ゲートウェイに要求を行います。
サブスクリプション キーを取得する
インポートした API と適用されるポリシーをテストするには、API Management インスタンスのサブスクリプション キーが必要です。
エクスプローラー ペインで、API Management インスタンスの名前を右クリックします。
[Copy Subscription Key](サブスクリプション キーのコピー) を選択します。 このキーは、API Management インスタンスの作成時に作成される組み込みのオールアクセス サブスクリプション用です。
注意事項
オールアクセス サブスクリプションを使用すると、この API Management インスタンス内のすべての API へのアクセスが可能になります。これは、承認されたユーザーのみが使用する必要があります。 これを定期的な API アクセスに使用したり、クライアント アプリにオールアクセス キーを埋め込んだりしないでください。
API 操作をテストする
- エクスプローラー ペインで、インポートした petstore API の下の [操作] ノードを展開します。
- [GET] Find pet by ID などの操作を選択してから、操作を右クリックして [テスト操作] を選択します。
- エディター ウィンドウで、要求 URL の
petId
パラメーターを5
に置き換えます。 - エディター ウィンドウで、Ocp-Apim-Subscription-Key の横にある
{{SubscriptionKey}}
を、コピーしたサブスクリプション キーに置き換えます。 - [要求の送信] をクリックします。
要求が成功すると、バックエンドから 200 OK およびいくつかのデータが応答として返されます。
この応答の次の点に注目してください。
- 応答に
Custom
ヘッダーが追加されています。
次に、レート制限ポリシーをテストします。 [要求の送信] を数回続けて選択します。 構成された期間内に送信された要求が多すぎると、429 Too Many Requests
応答が返されます。
トレース要求の処理
必要に応じて、API のデバッグとトラブルシューティングに役立つ詳細な要求トレース情報を取得できます。
API のトレースを有効にする手順については、「API のトレースを有効にする」を参照してください。 機密情報の意図しない開示を制限するため、トレースは既定では 1 時間だけ許可されます。
リソースをクリーンアップする
API Management インスタンスが必要なくなった場合にこれを削除するには、右クリックして [ポータルで開く] を選択し、API Management サービスとそのリソース グループを削除します。
または、 [Delete API Management](API Management の削除) を選択して、API Management インスタンスのみを削除することもできます (この操作では、そのリソース グループは削除されません)。
関連するコンテンツ
このチュートリアルでは、Visual Studio Code 用 API Management 拡張機能の、いくつかの機能を紹介しました。 これらの機能を使用して API をインポートおよび管理できます。 以下の方法を学習しました。
- API Management に API をインポートする
- API を編集する
- API Management のポリシーを適用する
- API のテスト
API Management 拡張機能には、API を操作するための機能が他にも用意されています。 たとえば、デバッグのポリシー (Developer サービス レベルで利用可能) が利用できるほか、名前付きの値を作成して管理することができます。