/fastexpress

Restful API Framework minimalist

Primary LanguageJavaScriptMIT LicenseMIT

fastexpress

Open Source Love Build Status CircleCI Maintainability Test Coverage GitHub license npm version Open Source Helpers PRs Welcome


fastexpress is a library designed to speed up the development of APIs with express. 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 name:string check:boolean age:number
  • npm run sequelize db:migrate
  • npm run sequelize db:seed:all # (optional)

After that, you just need import and add the resource on Router. Like this on src/routers.js file:

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.

fastexpress development

The tests use mysql, it need to use it.

With docker: docker run --name fastexpress-mysql -e MYSQL_ROOT_PASSWORD=123 -p 3306:3306 -d mysql:5

npm run pre-test

npm run jest or npm run test

Open Source

If you have any question/bug/suggestion just create a new issue!

Author