🍄 Offline gateway
File based API gateway,
🎉 specially offline-gateway
support DynamoDB local stream
npm -g i offline-gateway
Usage
Define API TYPE and PATH in filename.
METHOD.PATH1.PATH2.PATHN.js
touch {post,get}.user.js
and write code
bat {post,get}.user.js
───────┬────────────────────────────────────────────────── │ File: post.user.js───────┼────────────────────────────────────────────────── 1 │ module.exports = (event, context, callback) => { 2 │ return { 3 │ statusCode: 201, 4 │ body: 'Created', 5 │ } 6 │ }───────┴─────────────────────────────────────────────────────────┬────────────────────────────────────────────────── │ File: get.user.js───────┼────────────────────────────────────────────────── 1 │ module.exports = (event, context, callback) => { 2 │ return { 3 │ statusCode: 200, 4 │ body: JSON.stringify([]) 5 │ } 6 │ }───────┴──────────────────────────────────────────────────
tree
.├── ...(ignoring)├── post.user.js└── get.user.js
Run offline-gateway
or ogw
$ offline-gateway # or ogw
🍄 Callgate ready to work on port 3000
And USE
http post localhost:3000/user
HTTP/1.1 201 CreatedConnection: keep-aliveContent-Length: 7Content-Type: text/html; charset=utf-8Date: Sun, 21 Oct 2018 17:49:06 GMTETag: W/"7-rM9AyJuqT6iOan/xHh+AW+7K/T8"X-Powered-By: Express Created
$ http get localhost:3000/user
HTTP/1.1 200 OKConnection: keep-aliveContent-Length: 2Content-Type: text/html; charset=utf-8Date: Sun, 21 Oct 2018 17:49:11 GMTETag: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"X-Powered-By: Express []
PORT
PORT=5945 ogw
DynamoDB local stream
touch ddb.region.port.tableName.js
module { console}
offline-gateway
polling stream's(first shard, DynamoDB support only one stream) first shard by 1
second.
Features
- Hot reloading
- DynamoDB local stream(limited, very initial version)
Link
License
MIT