Awesome
api-gateway-sim
AWS API Gateway simulator for Node JS Lambda
Install
$ npm install -g api-gateway-sim
To run, you need to export your configuration from AWS API Gateway console. Choose "Export as Swagger + API Gateway Integrations".
See details in Export an API from Api Gateway
Running the simulator using ags cli
$ cd <node lambda directory>
$ ags --swagger <exported swagger json file>.json
Testing your lambda
$ curl http://localhost:3000/
Using different listening port
$ PORT=4000 ags --swagger <file>.json
Command Line Help
Usage: ags [options]
Options:
-h, --help output usage information
-V, --version output the version number
-i, --timeout <lambda timeout> Default is 3 seconds
-s, --swagger <file> Swagger config file
-e, --event <file> Default file event.json
-c, --context <file> Default file context.json file
-t, --stage-variables <file> Default file stage-variables.json file
-p, --port <port> Api gateway port, default 3000
-a, --ags-server Run AGS UI
-b, --with-basepath Include base path in the endpoint
-u, --strict-cors Enable CORS base on config file
-g, --ags-port <port> AGS UI port, default 4000
Features
- Supports Body Mapping Templates
- Supports Body Mapping Template validation.
$ ags -a
# From your browser open http://localhost:4000
- Supports integration responses
- Supports event.json, context.json, and stage-variables.json
- Continues to monitoring changes in your lambda code. YES! No need to restart ags
- Support for json or yaml swagger file.
- Monitor changes in event.json, context.json, and stage-variables.json
- CORS - enabled by default
- Supports lambda timeout
- Supports base path
- Supports {proxy+}
- Supports proxy integration isBase64Encoded, multiValueHeaders, and multiValueQueryStringParameters