Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

从 API Gateway 中导出 API

通过 API Gateway 控制台或其他方式在 API Gateway 中创建和配置 API 后,您可以使用 API Gateway Export API (Amazon API Gateway 控制服务的一部分) 将其导出到 Swagger 文件中。您可以在导出的 Swagger 定义文件中包含 API Gateway 集成扩展以及 Postman 扩展。

如果 API 的负载并非 application/json 类型,则您无法将其导出。如果尝试导出,您将收到一条错误响应,指出未找到 JSON 正文模型。

请求导出 API

借助 Export API,您可以提交 GET 请求,将要导出的 API 指定为 URL 路径的一部分,以此来导出现有 API。请求 URL 的格式如下:

https://<host>/restapis/<restapi_id>/stages/<stage_name>/exports/swagger

您可以附加 extensions 查询字符串,以指定是否要包含 API Gateway 扩展 (含 integration 值) 或 Postman 扩展 (含 postman 值)。

此外,您还可以将 Accept 标头设置为 application/jsonapplication/yaml,以分别接收 JSON 格式或 YAML 格式的 API 定义输出。

有关使用 API Gateway Export API 提交 GET 请求的更多信息,请参阅发出 HTTP 请求

注意

如果您在 API 中定义模型,那么这些模型的内容类型必须为“应用程序/json”,这样 API Gateway 才能将其导出。否则,API Gateway 会引发异常,并显示“仅找到适用于……的非 JSON 正文模型”的错误消息。

下载 JSON 格式的 API Swagger 定义

要导出并下载 JSON 格式的 API Swagger 定义,请执行以下操作:

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

这里的 <region> 可以是 (比如说) us-east-1。有关提供 API Gateway 的所有区域,请参阅区域和终端节点

下载 YAML 格式的 API Swagger 定义

要导出并下载 YAML 格式的 API Swagger 定义,请执行以下操作:

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

借助 Postman 扩展下载 JSON 格式的 API Swagger 定义

要借助 Postman 下载 JSON 格式的 API Swagger 定义,请执行以下操作:

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

借助 API Gateway 集成下载 YAML 格式的 API Swagger 定义

要借助 API Gateway 集成下载 YAML 格式的 API Swagger 定义,请执行以下操作:

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

使用 API Gateway 控制台导出 API

将 API 部署到阶段后,您可以使用 API Gateway 控制台将此阶段中的 API 导出到 Swagger 文件。

从 API Gateway 控制台的 stage configuration 页,选择 Export 选项卡,然后选择其中一个可用选项 (Export as SwaggerExport as Swagger + API Gateway IntegrationsExport as Postman),以便下载您的 API 的 Swagger 定义。

 使用 API Gateway 控制台导出 API