@coorpacademy/baucis
Version:
Build scalable REST APIs using the open source tools and standards you already know.
52 lines (40 loc) • 2.3 kB
Markdown
Baucis
======
[](https://www.npmjs.com/package/@coorpacademy/baucis)
[](https://travis-ci.com/CoorpAcademy/baucis)
> Build scalable REST APIs using the open source tools and standards you and your team already know — *Mongoose, Express, and Node.js streams*.
Baucis takes the boilerplate out of building and maintaining scalable [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS)/[Level 3](http://martinfowler.com/articles/richardsonMaturityModel.html) REST APIs.
* Automatically build controllers from your Mongoose schemas, then easily configure them.
* Built on Express 4 so adding custom middleware is a snap. Compatible with existing Express middleware.
* Fully takes advantage of Node.js streaming to nimbly process large datasets.
* Implements the HTTP specification according to the specifications ([RFC 7231](http://tools.ietf.org/rfcmarkup/7231), etc.)
* Widely compatible with a variety of front end frameworks.
* Perform rich queries of the API using an expressive JSON syntax via query string.
* Supports geolocation and full text search.
* Version your API using semver.
* Automatically generate interactive Swagger documentation for the API.
* Highly customizable, simple interface. Can be extended with plugins.
* Compatible with MongoDB 2.x and 3.x
* Over 140 Mocha.js tests in addition to Express' and Mongoose's.
## Getting Started :rocket:
To install:
npm install --save @coorpacademy/baucis
``` javascript
const mongoose = require('mongoose');
const express = require('express');
const baucis = require('@coorpacademy/baucis')(mongoose, express)
// Create a mongoose schema.
const Vegetable = new mongoose.Schema({ name: String });
// Register new models with mongoose.
mongoose.model('vegetable', Vegetable);
// Create a simple controller. By default these HTTP methods
// are activated: HEAD, GET, POST, PUT, DELETE
baucis.rest('vegetable');
// Create the app and listen for API requests
const app = express();
app.use('/api', baucis());
app.listen(4334);
```
Head other the main repository on [github](https://github.com/CoorpAcademy/baucis)