作为我们持续交付管道的一部分,我将部署 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 定义。
有谁知道任何有用的工具?