Mongoose Express Api

Flexible automatic API generation for Moongose and Express

Features

Installation

npm install mongoose-express-api

or specify it as a dependency in package.json

"dependencies": {
  "mongoose-express-api": "*"
}

and then run npm install in your project root.

Examples

Basic usage

MongooseExpressApi = require("mongoose-express-api");

api = new MongooseExpressApi();
api.resources(mongoose.models);

api.mount(app, "/api");

Filtering models

api.resources(mongoose.models, { skip: ["Admin"] })

Specifying allowed actions

api.resources(mongoose.models, {actions: ["read", "list"]})

Adding a single model

api.resource(myModel)

Adding a single model filtering actions

api.resource(myModel, {actions: ["read", "list"]})

Extending implementation

impl = api.getImplementation();
impl.setResponder( myResponder );
impl.addAction( "search", searchAction );

Replacing Implementation

impl = api.setImplementation( myImpl );

Securing api and using middlewares

impl.use(myMiddleware);

impl.use(authMiddleware, {if: function(action){
  return action.method != "get";
}});

Generate Documentation

api = new MongooseExpressApi({ title: "My API", description: "This API is for ..", version: "1.0.0" });
api.resources(mongoose.models);

api.mount(app, "/api");
api.mountDocumentation(app, "/api/docs");