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

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

AWS提供API Gateway Extensions to Swagger . 通过这些扩展,您可以在Swagger定义中提供请求/响应模板 . 下面是一个带有Swagger API网关扩展的json片段示例:

"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"
    }
  }

编辑Swagger定义变得容易出错,因为您需要内联AWS API网关模板 .

Swagger网站lists a lot of tools用于从Swagger定义生成客户端/服务器存根或用于从API代码生成Swagger定义 .

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

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