6

作为我们持续交付管道的一部分,我将部署 AWS API Gateway API。

最简单的方法是使用Amazon API Gateway Importer,它可以从 Swagger 表示创建或更新 Amazon API Gateway API。

AWS 为Swagger 提供 API 网关扩展。使用这些扩展,您可以在 Swagger 定义中提供请求/响应模板。下面是一个示例 json 片段,其中包含 Swagger 的 API 网关扩展:

"x-amazon-apigateway-integration": {
      "responses": {
        "default": {
          "statusCode": "200",
          "responseParameters": {
            "method.response.header.Access-Control-Allow-Origin": "'*'"
          },
          "responseTemplates": {
            "application/json": "#set($inputRoot = $input.path('$'))\r\n[\r\n#foreach($elem in $inputRoot)\r\n    {\r\n      \"id\" : \"$elem.id\",\r\n      \"login\" : \"$elem.login\"\r\n    }#if($foreach.hasNext),#end\r\n        \r\n#end\r\n  ]\r\n"
          }
        }
      },
      "uri": "http://www.example.com/api/users",
      "httpMethod": "GET",
      "requestParameters": {
        "integration.request.querystring.page": "method.request.querystring.page",
        "integration.request.header.x-auth-token": "method.request.header.x-auth-token",
        "integration.request.querystring.size": "method.request.querystring.size"
      },
      "type": "http"
    }
  }

由于您需要内联 AWS API Gateway 模板,因此编辑 Swagger 定义很容易出错。

Swagger 网站列出了许多用于从 Swagger 定义生成客户端/服务器存根或从 API 代码生成 Swagger 定义的工具。

我正在寻找类似于Troposphere的工具。我的想法是我可以在 Python 中定义我的 API,然后生成 JSON 或 yaml 文件。好处是我可以分离 AWS API Gateway 请求/响应模板,然后将它们拉入生成的 Swagger 定义。

有谁知道任何有用的工具?

4

0 回答 0