適用対象: すべての API Management レベル
この記事では、Azure portal を使用して Azure Web アプリを API として Azure API Management にインポートし、インポートされた API をテストする方法について説明します。
注
現在、この機能はワークスペースでは利用できません。
この記事では、次のことについて説明します。
- Azure App Service でホストされている Web アプリを API としてインポートする
- Azure Portal での API のテスト
API Management を使用して Web アプリを公開する
Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。 API 開発者は、好みのテクノロジ スタックとパイプラインを使用して API を開発し、セキュリティで保護されたスケーラブルな環境で API バックエンドを Web アプリとして発行できます。 その後、API Management を使用して Web アプリを公開し、ライフサイクル全体にわたって API を管理および保護し、コンシューマーに発行できます。
API Management を使用して Web Apps でホストされる API を公開すると、次の利点があります。
- API コンシューマーに公開されているフロントエンドの管理とセキュリティ保護を、バックエンド Web アプリの管理と監視から切り離します。
- 他の API と同じ環境で Web アプリとしてホストされている Web API を管理します。
- 呼び出しレートの制限など、API の動作を変更する ポリシー を適用します。
- API コンシューマーをカスタマイズ可能な API Management 開発者ポータル に誘導して、API を検出して学習し、アクセスを要求し、API を試すことができます。
詳細については、「API Management について」を参照してください。
OpenAPI 定義とワイルドカード操作
API Management では、OpenAPI 定義 (Swagger 定義) を含む App Service でホストされている Web アプリのインポートがサポートされています。 ただし、OpenAPI 定義は必須ではありません。
Web アプリが OpenAPI 定義で構成されている場合、API Management によってそれが検出されます。 または、API Management に定義を手動でインポートできます。 その後、API Management は、必要なパス、パラメーター、応答の種類など、定義に直接マップする API 操作を作成します。
OPENAPI 定義を使用することをお勧めします。API は高い再現性で API Management にインポートされるため、各操作の構成を個別に検証、管理、セキュリティで保護、更新する柔軟性が得られます。
OpenAPI 定義が提供されない場合、一般的な HTTP 動詞 (GET、PUT など) のワイルドカード操作が API Management によって生成されます。 必要なパスやパラメーターをワイルドカード操作に付加して、API 要求をバックエンド API に渡します。
ワイルドカード操作によって、同じ API Management 機能を引き続き利用できますが、操作は既定では同じ詳細レベルで定義されていません。 いずれの場合も、インポートした API の操作の編集または追加ができます。
例
バックエンド Web アプリでは、次の 2 つの GET 操作がサポートされる場合があります。
https://<app-service>.azurewebsites.net/customer/{id}
https://<app-service>.azurewebsites.net/customers
web アプリは、 https://<api>.azureapi.net/store
などのパスで API Management サービスにインポートします。 次の表は、OpenAPI 仕様の有無にかかわらず、API Management にインポートされる操作を示しています。
タイプ | インポートされる操作 | サンプルの要求 |
---|---|---|
OpenAPI の仕様 | GET /customer/{id} GET /customers |
GET https://<api>.azureapi.net/store/customer/1 GET https://<api>.azureapi.net/store/customers |
ワイルドカード | GET /* |
GET https://<api>.azureapi.net/store/customer/1 GET https://<api>.azureapi.net/store/customers |
ワイルドカード操作によって、OpenAPI 仕様の操作と同じ要求をバックエンド サービスに対して実行できます。 ただし、OpenAPI が指定された操作は、API Management で個別に管理できます。
前提条件
クイック スタート「 Azure API Management インスタンスを作成する」を完了します。
サブスクリプションにアプリ サービスがあることを確認します。 詳細については、App Service のドキュメントを参照してください。
サンプル Web API を作成し、Azure Web アプリとして発行する方法については、次を参照してください。
バックエンド API のインポートと発行
ヒント
次の手順では、Azure portal で API Management を使用してインポートを開始します。 アプリの API メニューで [API Management] を選択して、Web アプリから直接 API Management にリンクすることもできます。
Azure portal で API Management サービスに移動します。
左側のメニューの [API] セクションで [ API] を選択し、[ + API の追加] を選択します。
[App Service] タイルを選択します。
[ 参照] を 選択して、サブスクリプション内のアプリ サービスの一覧を表示します。
アプリ サービスを選択し、[ 選択 ] ボタンをクリックします。 OpenAPI 定義が選択した Web アプリに関連付けられている場合、API Management はそれをフェッチしてインポートします。
OpenAPI 定義が見つからない場合、API Management では、一般的な HTTP 動詞のワイルドカード操作を生成して API を公開します。
API URL サフィックスを追加します。 サフィックスは、API Management インスタンス内の API を識別する名前です。 API Management インスタンス内で一意である必要があります。
API を公開して開発者が使用できるようにする場合は、 フル ビューに切り替えて、API を 製品に関連付けます。 この例では、 無制限 の製品を使用します。 (API は、製品を作成するときに、または後で [設定] タブを使用して追加できます)。
注
製品は、開発者ポータルを介して開発者に提供される 1 つ以上の API の関連付けです。 開発者は、まず成果物をサブスクライブして API へのアクセス権を取得する必要があります。 サブスクライブした後、製品内の任意の API のサブスクリプション キーを取得します。 API Management インスタンスの作成者は管理者であり、既定ですべての製品にサブスクライブされます。
特定のレベルでは、各 API Management インスタンスに 2 つの既定のサンプル製品が付属しています。
- スターター
- 無制限
他の API 設定を入力します。 これらの値は、API の作成時に設定することも、後で [設定] タブに移動して構成することもできます。設定については、最初の API の インポートと発行に関するチュートリアルを参照してください 。
Azure portal での新しい API のテスト
操作は Azure portal から直接呼び出すことができます。 このメソッドは、API の操作を表示およびテストするための便利な方法を提供します。 開発者ポータルで、または独自の REST クライアント ツールを使用して、API をテストすることもできます。
前の手順で作成した API を選びます。
[ テスト ] タブで、操作を選択します。
ページに、クエリ パラメーターのフィールドとヘッダーのフィールドが表示されます。 ヘッダーの 1 つが
Ocp-Apim-Subscription-Key
です。 このヘッダーは、API に関連付けられている製品のサブスクリプション キー用です。 API Management インスタンスを作成した場合は、既に管理者であるため、キーは自動的に入力されます。[送信] をクリックします。
テストが成功すると、バックエンドから 200 OK といくつかのデータが応答として返されます。
ポータルでワイルドカード操作をテストする
ワイルドカード操作が生成されるとき、操作がバックエンド API に直接マップしない場合があります。 たとえば、API Management にインポートされるワイルドカード GET 操作では、パス /
を既定で使用します。 ただし、バックエンド API では、パス /api/todoItems
での GET 操作がサポートされている場合があります。
パス /api/todoItems
をテストするには:
作成した API を選択し、操作を選択します。
[ テスト ] タブの [ テンプレート パラメーター] で、ワイルドカード (*) 名の横にある値を更新します。 たとえば、「 api/todoItems」と入力します。 この値が、ワイルドカード操作のパス
/
の後に追加されます。[Send] を選択します。
その他の API の追加
次のようなさまざまなサービスによって公開された API の中から任意の API を構成できます。
- OpenAPI の仕様
- SOAP API
- GraphQL API
- Azure App Service でホストされる Web アプリ
- Azure Functions (アジュール ファンクションズ)
- Azure Logic Apps
- Azure Service Fabric
注
API をインポートすると、操作が現在の API に追加されます。
既存の API に API を追加するには:
Azure portal で Azure API Management インスタンスに移動します。
[概要] ページで [API] を選択するか、左側のメニューで [API]>[API] の順に選択します。
別の API を追加する API の横にある省略記号 (...) を選択します。
ドロップダウン メニューから [インポート] を選択します。
API のインポート元のサービスを選択します。
関連コンテンツ
- API のインポートの制限事項
- OpenAPI 仕様のインポート
- SOAP API のインポート
- SOAP API をインポートして REST に変換する
- App Service API をインポートする
- コンテナー アプリ API をインポートする
- Websocket API のインポート
- GraphQL API のインポート
- GraphQL スキーマをインポートし、フィールド リゾルバーを設定する
- 関数アプリ API をインポートする
- ロジック アプリ API をインポートする
- Service Fabric サービスをインポートする
- Azure AI Foundry API をインポートする
- Azure OpenAI API をインポートする
- LLM API をインポートする
- OData API をインポートする
- SAP OData メタデータをインポートする
- gRPC API をインポートする
- API の編集