Skip to content

masslight/aws-apigateway-swagger-importer

 
 

Repository files navigation

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

Bash:
./aws-api-import.sh --create path/to/swagger.json

Windows:
./aws-api-import.cmd --create path/to/swagger.json

Update an existing API and deploy it to a stage

Bash:
./aws-api-import.sh --update API_ID --deploy STAGE_NAME path/to/swagger.yaml

Windows:
./aws-api-import.cmd --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"
            }
        }
    }
}

About

Tools to work with Amazon API Gateway and Swagger

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • Other 0.2%