Amazon API Gateway Swagger Importer
The Amazon API Gateway Swagger Importer lets you create or update Amazon API Gateway APIs from a Swagger representation.
To learn more about API Gateway, please see the service documentation or the API documentation.
Usage
Prerequisites
This tool requires the AWS CLI to be installed and configured on your system.
Build with mvn assembly:assembly
Usage Examples
Import a new API
e.g. ./aws-api-import.sh --create path/to/swagger.json
Update an existing API and deploy it to a stage
e.g. ./aws-api-import.sh --update API_ID --deploy STAGE_NAME path/to/swagger.yaml
API Gateway Swagger Extension Example
You can fully define an API Gateway API in Swagger using the x-amazon-apigateway-auth and x-amazon-apigateway-integration extensions.
Defined on an Operation:
e.g.
"x-amazon-apigateway-auth" : {
"type" : "aws_iam"
},
"x-amazon-apigateway-integration" : {
"type" : "aws",
"uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:MY_ACCT_ID:function:helloWorld/invocations",
"httpMethod" : "POST",
"credentials" : "arn:aws:iam::MY_ACCT_ID:role/lambda_exec_role",
"requestTemplates" : {
"application/json" : "json request template 2",
"application/xml" : "xml request template 2"
},
"requestParameters" : {
"integration.request.path.integrationPathParam" : "method.request.querystring.latitude",
"integration.request.querystring.integrationQueryParam" : "method.request.querystring.longitude"
},
"cacheNamespace" : "cache-namespace",
"cacheKeyParameters" : [],
"responses" : {
"2\\d{2}" : {
"statusCode" : "200",
"responseParameters" : {
"method.response.header.test-method-response-header" : "integration.response.header.integrationResponseHeaderParam1"
},
"responseTemplates" : {
"application/json" : "json 200 response template",
"application/xml" : "xml 200 response template"
}
},
"default" : {
"statusCode" : "400",
"responseParameters" : {
"method.response.header.test-method-response-header" : "'static value'"
},
"responseTemplates" : {
"application/json" : "json 400 response template",
"application/xml" : "xml 400 response template"
}
}
}
}