OREST
Opinionated REST library for NodeJS using a cool stack & specification
Design choices
Will work with these frameworks :
- ExpressJS
- Sequalize
- OAuth 2.0
- Redis for Sessions
Will follow :
- JSON API Responses https://jsonapi.org
- Route example : /v1/products
- Route with extension : /v1/products.json
- Other extensions (with automated conversion) : xml or yaml
- Describing the API automatically with https://www.openapis.org/
- Statefull JWT authentification - https://tools.ietf.org/html/rfc7519
Will handle :
- Multiple versions
- Partial responses
- Paginations
- Relations over entities
- HTTP Error Codes with a Message body
- HTTP Verbs for CRUD
- Integrated Auth
Will do out of the box :
- Generate documentation
- Generate a JS client
W.I.P
Still working on it
Getting started
Install
npm install orest --save
Usage
// init framework componentsconst express = ;const app = ;// db is from sequelize ... const Api = ;let api = ;let account = api;// Lists every accountaccount;// Provides some helpapi;api;
The api
You can deal with 2 concepts :
- The entity
- The endpoint
An entity is a sequelize model structure, and you can configure how and what you want to expose.
The endpoint is a routing concept in order to expose either an entity (they are generating endpoints out of the box), or a generic action.
Once you defined the API, you can document it with the help api.