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