https://github.com/coderofsalvation/flowee
a lightweight way to create JSONAPI-compatible api's_ using nodejs:
https://github.com/coderofsalvation/flowee
Last synced: about 1 year ago
JSON representation
a lightweight way to create JSONAPI-compatible api's_ using nodejs:
- Host: GitHub
- URL: https://github.com/coderofsalvation/flowee
- Owner: coderofsalvation
- Created: 2015-12-14T11:02:12.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2020-09-10T17:56:43.000Z (almost 6 years ago)
- Last Synced: 2025-03-12T11:07:07.723Z (over 1 year ago)
- Language: CoffeeScript
- Homepage: http://flowee.isvery.ninja
- Size: 481 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
## Flowee
a __lightweight__ way to __create JSONAPI__-compatible api's for _nodejs_

## Getting started
$ npm install flowee
$ cp node_modules/flowee/test/model.js .
__Create `server.js`:__
var flowee = require('flowee')
var app = flowee.init({ model: require('./model.js'), store: true });
flowee.start( function(server) {
return server.listen(1337);
});
( See [model.js here](https://github.com/coderofsalvation/flowee/blob/master/test/model.js) )
$ node server.js
> Voila! Now you have a server running with automatically mapped database entities (incl. __many to many__ relations OHMY).
## Architecture

__Flowee__ promotes [configuration over convention](http://flowee.isvery.ninja/doc/howto-configuration-over-convention), click here to see the fullscreen architecture
## Howtos
* [I want a database structure)](http://flowee.isvery.ninja/doc/howto-database.html)
* [I want custom endpoints](http://flowee.isvery.ninja/doc/howto-custom-endpoints.html)
* [I want to implementing logic](http://flowee.isvery.ninja/doc/howto-logic.html)
* [Middleware](http://flowee.isvery.ninja/doc/howto-middleware.html)
## Features
Built on the shoulders of [fortunejs](http://fortunejs.com/), which represents:
* fast installation: core is +/- 10M
* [configuration over convention](http://flowee.isvery.ninja/doc/howto-configuration-over-convention)
* a teaspoon of automatic database object relations mappings
* 5 liters of [JSONAPI v1](http://jsonapi.org/) compatible REST responses
* swappable database adapters like [MongoDB](https://www.npmjs.com/package/fortune-mongodb), [Postgres](https://www.npmjs.com/package/fortune-postgres), [Redis](https://www.npmjs.com/package/fortune-redis) adapter
Oh..and:
* [DDA](http://www.slideshare.net/apigee/i-love-apis-2015-create-designdriven-apis-with-nodejs-and-swagger): design-driven api by using a json __SWAGGER v2__ compatible model
* __middleware compatible__: connect [express](http://expressjs.com) and [restify](http://restify.com) middleware modules from npm
## Extensions
> [flowee-doc](https://npmjs.org/flowee-doc): automatic generating api documentation

> [flowee-auth](https://npmjs.org/flowee-auth): passport authentication

> [flowee-admin](): automatic admin interface (__TODO__)
## Philosophy
Take a look at [loopback](http://blog.jeffdouglas.com/2015/07/07/roll-your-own-api-vs-loopback), [meteor](http://meteor.com), [cleverstack](http://cleverstack.io).
Now imagine lightweight.
Flowee likes to focus on:
* lightweight and fast to install
* json driven, declarative (monkeypatchable configuration over convention)
* http framework agnostic
* [configuration over convention](http://flowee.isvery.ninja/doc/howto-configuration-over-convention)
* allow re-usage of middleware from http frameworks like express/restify etc
* extend using npm installs: no cli tools, no learningcurve