search
LoginSignup
3

More than 1 year has passed since last update.

posted at

updated at

Visual Studio Codeを使用してAzure API ManagementからFunctions APIをテストしてみた

はじめに

OpenAPI仕様をベースに設計したAPIをAzure API Managementにインポートした後、実際にAPIを処理するバックエンドを用意してテストするにはAzure Portalを使うにしてもなかなか大変だと思います。

今回Windows10の端末にてVisual Studio Codeを用いてAzure API Managementに定義したAPIからAzure Functions用のAPIを作成し、作成したAPIをAzure FunctionsにデプロイしてAzure API Managementのテスト機能にてAPIをテスト送信する方法を紹介します。

  事前準備
    ↓
Functions APIを作成
    ↓
Functionsへデプロイ
    ↓
Functions APIをテスト

事前準備

VS Codeをインストールした後にVS Code拡張機能であるAPI ManagementとFunctionsをそれぞれインストールします。

[Azure API Management拡張機能]
2020-12-08_15h35_41.png

[Azure Functions拡張機能]
2020-12-08_15h36_21.png

API Management拡張機能の以下アイコンをクリックし、 "Extension Settings" をクリックします。
2020-12-08_22h16_23.png

"Scaffold Azure Functions" を有効にします。
2020-12-08_22h18_24.png

Node.jsをインストール後にコマンドプロンプトを起動して、以下を実行しAutoRestをインストールします。
AutoRestとはMicrosoftがオープンソースとして公開しているOpenAPI仕様から様々な言語に対応したAPI読み出しライブラリを自動生成するツールです。

npm install -g autorest

Functions APIを作成

ここではAPI Managementに定義したAPIをベースにFunctionsに実装するAPIライブラリを作成します。

対象のAPI(Demo Conference API)にカーソルを合わせて右クリックし、"Scaffold Azure Functions" をクリックします。
2020-12-08_15h55_51.png

Functionsにて関数を実装する際の言語を選択します。
2020-12-08_15h57_01.png

自動生成されるFunctions用のAPIライブラリを格納する任意のフォルダ(空でOK)を選択して "Functions Location" をクリックします。
2020-12-08_16h03_00.png

上記実行後に任意のフォルダにFunctions用のAPIライブラリが作成されます。
2020-12-08_16h11_51.png

Functionsへデプロイ

ここでは上記で作成したAPIライブラリをFunctionsを新規作成してデプロイします。

VS Codeのプロジェクトとして先程作成したFunctions用のAPIライブラリが格納されている任意フォルダがOpenになっていることを確認します。
2020-12-08_16h34_04.png

"Deploy to Function App..." のアイコンをクリックします。
2020-12-08_16h13_10.png

対象のサブスクリプションを選択します。
2020-12-08_16h14_24.png

"+Create new Function App in Azure..." を選択します。
2020-12-08_16h15_12.png

新規に作成するFunctions名を入力します。
2020-12-08_16h16_35.png

Runtime stackを選択します。
2020-12-08_16h19_19.png

ロケーションを選択するとFunctionsの生成・デプロイが開始されます。
2020-12-08_16h19_37.png

Functionsの生成・デプロイが完了すると以下の通りAPI Managementにて定義した各APIがFunctionsに関数として作成されていることを確認することができます。
2020-12-07_23h02_15.png

Functions APIをテスト

それでは作成したFunctions APIをテストしてみます。

テスト対象のAPI(GetSpeakers)にカーソルを合わせて右クリックし、"Test operation" をクリックします。
2020-12-08_16h41_04.png

以下のようなAPI画面が表示されます。APIをAPI ManagementからFunctionsにテスト送信するために適切なFunction URIとサブスクリプションIDに置き換える必要があります。
2020-12-08_16h42_14.png

API Management名(apim-test-khigashi)にカーソルを合わせて右クリックし、"Copy Subscription Key" をクリックすることでサブスクリプションIDをコピーすることができます。
2020-12-08_16h42_49.png

テスト対象のAPI関数(GetSpeakers)にカーソルを合わせて右クリックし、"Copy Function Url" をクリックすることでFunction URI(API関数のURI)をコピーすることができます。
2020-12-08_16h43_55.png

上記コピーしたFunction URIとサブスクリプションIDを以下の通り置き換えます。
2020-12-07_23h41_05.png

API画面の "Send Request" をクリックすると右画面にResponse結果が表示され結果を確認することができます。
image.png

おわりに

Azure portalを使わずにVS Codeだけで簡単にAPI ManagementのバックエンドとしてFunctionsを配置してAPIテストをすることができました。特に開発者にとってはAPI設計⇒コード自動生成⇒APIテストの一連の流れをVS Codeのみで開発できるのは大変有効なのではないかと思います。またAPI ManagementのVS Code拡張機能はその他にも便利な機能がございます。オープンソースとしてGithub上で日々アップデートされておりますのでチェックしてみてください。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3