API Gateway を Swagger 形式でエクスポートする方法を教えてください

2022.10.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Amazon API Gateway に関する問い合わせでサポートに確認したところ「Swagger + API Gateway Extensions の YAML 形式でエクスポートしたファイルをご提供ください」と言われましたが、取得方法がわかりません。取得方法を教えてください。

どう対応すればいいの?

API Gateway コンソールの場合は「ステージ」の「エクスポート」タブから取得できます。

AWS CLI の場合はget-exportコマンドから取得できます。

参考:API Gateway から REST API をエクスポートする - Amazon API Gateway

API Gateway コンソールの場合

API Gateway コンソールを開き、取得対象の API をクリック

ステージ -> 取得対象のステージ -> エクスポートタブの順にクリック

「Export as...」はSwaggerを選択し、「Swagger +API Gateway 拡張の形式でエクスポート」のYAMLをクリック

指定した形式でファイルがエクスポートされます。

【APIの名前】-【ステージ名】-swagger-apigateway.yaml

---
swagger: "2.0"
info:
  description: "Technical Support Notes"
  version: "2022-01-01T01:01:01Z"
  title: "hato-apigw"
...

AWS CLIの場合

get-exportコマンドを実行すると、指定したファイル名でエクスポートされます。

$ aws apigateway get-export \
    --parameters extensions='apigateway' \
    --rest-api-id 【API ID】 \
    --stage-name 【ステージ名】 \
    --export-type swagger \
    --accepts "application/yaml" \
    【出力ファイル名】
{
    "contentType": "application/octet-stream",
    "contentDisposition": "attachment; filename=\"swagger_2022-01-01T01:01:01Z.yaml\""
}

参考資料