Amazon API Gateway
開発者ガイド

API Gateway から REST API をエクスポートする

API Gateway で REST API を作成および設定したら、API Gateway コンソールなどから API Gateway Export API (Amazon API Gateway Control Service の一部です) を使用して、API を OpenAPI ファイルにエクスポートできます。エクスポートされた OpenAPI 定義ファイルに、API Gateway 統合の拡張と、Postman 拡張を含めるオプションがあります。

ペイロードが application/json 型でない場合、API をエクスポートすることはできません。エクスポートを試みると、JSON 本文モデルが見つからないことを示すエラーレスポンスが返されます。

REST API をエクスポートするリクエスト

Export API を使用すると、GET リクエストを送信し、URL パスの一部としてエクスポートされる API を指定することにより、既存の REST API をエクスポートします。リクエストの URL は次の形式です。

OpenAPI 3.0OpenAPI 2.0
OpenAPI 3.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/oas30
OpenAPI 2.0
https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/swagger

extensions クエリ文字列を追加して、(値 integration を使用) API Gateway 拡張を含めるか、(値 postman を使用) Postman 拡張を含めるかを指定できます。

さらに、Accept ヘッダーを application/json または application/yaml に設定して、それぞれ JSON 形式または YAML 形式で API 定義の出力を受け取ることができます。

API Gateway Export API を使用して GET リクエストを送信する詳細については、「HTTP リクエストの実行」を参照してください。

注記

API でモデルを定義する場合、モデルをエクスポートする API Gateway の "application/json" のコンテンツタイプである必要があります。それ以外の場合、API Gateway は「Only found non-JSON body models for ...」というエラーメッセージとともに例外をスローします。

JSON で REST API OpenAPI 定義をダウンロードする

OpenAPI 定義を JSON 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。

OpenAPI 3.0OpenAPI 2.0
OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/json

ここで、<region> はたとえば us-east-1 にできます。API Gateway が利用可能なすべてのリージョンのリストについては、「リージョンとエンドポイント」を参照してください。

YAML で REST API OpenAPI 定義をダウンロードする

OpenAPI 定義を YAML 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。

OpenAPI 3.0OpenAPI 2.0
OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30 Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger Host: apigateway.<region>.amazonaws.com Accept: application/yaml

JSON にして Postman 拡張付きの REST API OpenAPI 定義をダウンロードする

Postman を使用して OpenAPI 定義を JSON 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。

OpenAPI 3.0OpenAPI 2.0
OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=postman Host: apigateway.<region>.amazonaws.com Accept: application/json

REST API OpenAPI 定義ファイルを YAML にして API Gateway 統合を使用してダウンロードする

OpenAPI 定義を YAML 形式にして API Gateway 統合を使用して REST API をエクスポートおよびダウンロードするには、以下のようにします。

OpenAPI 3.0OpenAPI 2.0
OpenAPI 3.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/oas30?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml
OpenAPI 2.0
GET /restapis/<restapi_id>/stages/<stage_name>/exports/swagger?extensions=integrations Host: apigateway.<region>.amazonaws.com Accept: application/yaml

API Gateway コンソールを使用した REST API のエクスポート

REST API をステージにデプロイしたら、次に API Gateway コンソールを使用してステージ内の API を OpenAPI ファイルにエクスポートすることができます。

API Gateway コンソールの [stage configuration (ステージ設定)] ページで、[エクスポート] タブを選択し、利用可能なオプション ([Export as OpenAPI (OpenAPI としてエクスポート)]、[Export as OpenAPI + API Gateway Integrations (OpenAPI としてエクスポート + API ゲートウェイ統合)]、および [Export as Postman (Postman としてエクスポート)]) の 1 つを選択して API の OpenAPI 定義をダウンロードします。


                        API Gateway コンソールを使用した REST API のエクスポート