API Gateway から REST API をエクスポートする
API Gateway で REST API を作成および設定したら、API Gateway コンソールなどから API Gateway Export API (Amazon API Gateway Control Service の一部です) を使用して、API を OpenAPI ファイルにエクスポートできます。API Gateway Export API を使用するには、API リクエストに署名する必要があります。リクエストの署名の詳細については、「IAM ユーザーガイド」の「AWS API リクエストの署名」を参照してください。エクスポートされた OpenAPI 定義ファイルに、API Gateway 統合の拡張機能と、Postman
注記
AWS CLI を使用して API をエクスポートする場合、次の例に示すように extensions パラメータを必ず含めて、x-amazon-apigateway-request-validator
拡張子が含まれるようにします。
aws apigateway get-export --parameters extensions='apigateway' --rest-api-id abcdefg123 --stage-name dev --export-type swagger latestswagger2.json
ペイロードが application/json
型でない場合、API をエクスポートすることはできません。エクスポートを試みると、JSON 本文モデルが見つからないことを示すエラーレスポンスが返されます。
REST API をエクスポートするリクエスト
Export API を使用すると、GET リクエストを送信し、URL パスの一部としてエクスポートされる API を指定することにより、既存の REST API をエクスポートします。リクエストの URL は次の形式です。
extensions
クエリ文字列を追加して、(値 integration
を使用) API Gateway 拡張を含めるか、(値 postman
を使用) Postman 拡張を含めるかを指定できます。
さらに、Accept
ヘッダーを application/json
または application/yaml
に設定して、それぞれ JSON 形式または YAML 形式で API 定義の出力を受け取ることができます。
API Gateway Export API を使用して GET リクエストを送信する詳細については、「GetExport」を参照してください。
注記
API でモデルを定義する場合、モデルをエクスポートする API Gateway の "application/json" のコンテンツタイプである必要があります。それ以外の場合、API Gateway は「Only found non-JSON body models for ...」というエラーメッセージとともに例外をスローします。
モデルはプロパティを含むか、特定の JSONSchema 型として定義される必要があります。
REST API OpenAPI 定義を JSON でダウンロードする
OpenAPI 定義を JSON 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。
ここで、
はたとえば <region>
us-east-1
にできます。API Gateway を利用できるすべてのリージョンについては、「リージョンとエンドポイント」を参照してください。
REST API OpenAPI 定義を YAML でダウンロードする
OpenAPI 定義を YAML 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。
Postman 拡張機能を使用して REST API OpenAPI 定義を JSON でダウンロードする
Postman を使用して OpenAPI 定義を JSON 形式にして REST API をエクスポートおよびダウンロードするには、以下のようにします。
API Gateway 統合を使用して REST API OpenAPI 定義ファイルを YAML でダウンロードする
OpenAPI 定義を YAML 形式にして API Gateway 統合を使用して REST API をエクスポートおよびダウンロードするには、以下のようにします。
API Gateway コンソールを使用して REST API をエクスポートする
REST API をステージにデプロイしたら、次に API Gateway コンソールを使用してステージ内の API を OpenAPI ファイルにエクスポートすることができます。
API Gateway コンソールの [ステージ] ペインで、[ステージアクション]、[エクスポート] を選択します。
[API 仕様タイプ]、[フォーマット]、[拡張機能] を指定して API の OpenAPI 定義をダウンロードします。