https://github.com/davidcostadev/fastexpress
Restful API Framework minimalist
https://github.com/davidcostadev/fastexpress
express fastexpress jwt nodejs sequelize
Last synced: 2 months ago
JSON representation
Restful API Framework minimalist
- Host: GitHub
- URL: https://github.com/davidcostadev/fastexpress
- Owner: davidcostadev
- License: mit
- Created: 2018-10-17T11:52:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-11-01T00:24:15.000Z (over 5 years ago)
- Last Synced: 2026-01-02T09:13:32.227Z (6 months ago)
- Topics: express, fastexpress, jwt, nodejs, sequelize
- Language: JavaScript
- Homepage:
- Size: 748 KB
- Stars: 14
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# fastexpress
[](https://github.com/ellerbrock/open-source-badges/)
[](https://travis-ci.org/davidcostadev/fastexpress)
[](https://circleci.com/gh/davidcostadev/fastexpress)
[](https://codeclimate.com/github/davidcostadev/fastexpress/maintainability)
[](https://codeclimate.com/github/davidcostadev/fastexpress/test_coverage)
[](https://github.com/davidcostadev/fastexpress/blob/master/LICENSE)
[](https://www.npmjs.com/package/fastexpress)
[](https://www.codetriage.com/davidcostadev/fastexpress)
[](http://makeapullrequest.com)
---
fastexpress is a library designed to speed up the development of APIs with express and sequelize. It's has a list of functionalities to create APIs with a small amount of lines of code, with possibility to customize it.
The main functionalities is:
- Improve the creation of model endpoints.
- Create CRUDs with few rows.
- Add rich integration with templates, allowing filters and joins.
- Add secure endpoints through token usage (jwt).
## Installation
- `npm install --global fastexpress`
- `fastexpress new [your-project-name]`
- `cd your-project-name`
- `npm install` or `yarn`
- `cp config/example.database.json config/database.json`
- `npm run sequelize db:create`
## Generate a resource
On root of your project
- `fastexpress resource [resourceName] --attributes title:string check:boolean birthday:date`
- `npm run sequelize db:migrate`
- `npm run sequelize db:seed:all` # **(optional)**
### Attributes
- string
- number or integer
- text
- boolean
- date or datetime
After that, you just need import and add the resource on Router. Like this on **src/routers.js** file:
```javascript
const { Resources } = require('fastexpress');
const [ResourceName] = require('./resources/[ResourceName]');
const routers = new Resources({
namespace: '/api/v1/',
})
.add('[resourceName]', [ResourceName])
.getRouters();
```
### Development
- `npm run dev`
#### Basic Endpoints
- `[get]` /api
- `[get]` /api/v1
#### Resources Endpoints
- `[get]` /api/v1/[resourceName] - to list resource
- `[post]` /api/v1/[resourceName] - to add a new entity
- `[get]` /api/v1/[resourceName]/:id - to get a one entity
- `[delete]` /api/v1/[resourceName]/:id - to delete a entity
- `[put]` /api/v1/[resourceName]/:id - to edit a entity
## Examples
### Basic
This is a basic example of usage of the fastexpress.
- [Basic](examples/basic)
- [Auth](examples/auth)
- [Complete](examples/complete)
## fastexpress development
[CONTRIBUTING.md](https://github.com/davidcostadev/fastexpress/blob/master/CONTRIBUTING.md)
## Open Source
We uses the [MIT](https://github.com/davidcosta/fastexpress/blob/master/LICENSE) license.
If you have any question/bug/suggestion just create a new issue!
## Author
- [David Costa](https://github.com/davidcostadev)