0.1.12 • Published 7 years ago
offline-gateway v0.1.12
:mushroom: Offline gateway

File based API gateway,
:tada: specially offline-gateway support DynamoDB local stream
npm -g i offline-gatewayUsage
Define API TYPE and PATH in filename.
METHOD.PATH1.PATH2.PATHN.js
touch {post,get}.user.jsand 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.jsRun offline-gateway or ogw
$ offline-gateway # or ogw🍄 Callgate ready to work on port 3000And USE
http post localhost:3000/userHTTP/1.1 201 Created
Connection: keep-alive
Content-Length: 7
Content-Type: text/html; charset=utf-8
Date: Sun, 21 Oct 2018 17:49:06 GMT
ETag: W/"7-rM9AyJuqT6iOan/xHh+AW+7K/T8"
X-Powered-By: Express
Created$ http get localhost:3000/userHTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Sun, 21 Oct 2018 17:49:11 GMT
ETag: W/"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w"
X-Powered-By: Express
[] PORT
PORT=5945 ogwDynamoDB local stream
touch ddb.region.port.tableName.js
module.exports = (event) => {
console.log('records', event)
}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