An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# fastexpress

[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)
[![Build Status](https://travis-ci.org/davidcostadev/fastexpress.svg?branch=master)](https://travis-ci.org/davidcostadev/fastexpress)
[![CircleCI](https://circleci.com/gh/davidcostadev/fastexpress.svg?style=svg)](https://circleci.com/gh/davidcostadev/fastexpress)
[![Maintainability](https://api.codeclimate.com/v1/badges/fbdb850163130e5fbde8/maintainability)](https://codeclimate.com/github/davidcostadev/fastexpress/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/fbdb850163130e5fbde8/test_coverage)](https://codeclimate.com/github/davidcostadev/fastexpress/test_coverage)
[![GitHub license](https://img.shields.io/github/license/davidcostadev/fastexpress.svg)](https://github.com/davidcostadev/fastexpress/blob/master/LICENSE)
[![npm version](https://img.shields.io/npm/v/fastexpress.svg)](https://www.npmjs.com/package/fastexpress)
[![Open Source Helpers](https://www.codetriage.com/davidcostadev/fastexpress/badges/users.svg)](https://www.codetriage.com/davidcostadev/fastexpress)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](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)