0.2.2 • Published 6 years ago

restify-express v0.2.2

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

restify-express Build Status Downloads npm version Dependency Status

Middleware to create REST APIs on express server

Installation

Works with Express 4.x.x

npm install restify-express

Usage

var express = require('express');
var rest = ('restify-express');
var router = express.Router();

var app = express();

app.use({
  controllers: __dirname + '/' + 'controllers',
  app: app,
  base: '/api',
  router: router,
  verbose: true
});

Next is to create controllers in your controllers folder. Let's create posts.js file with below sample code:

var Post = {
    __NAME : 'posts',
    index : function(req, res) {
        return res.json({'message' : 'This is index page'});
    },
    create : function(req, res) {
        return res.json({'message' : 'Create a new post'});
    },
    update : function(req, res) {
        return res.json({'message' : 'Update an existing post'});
    },
    read : function(req, res) {
        return res.json({'message' : 'read a post'});
    },
    destroy : function(req, res) {
        return res.json({'message' : 'Delete a post'});
    },
    custom: {
        method: 'get',
        params: '/:x/:y',
        handler: function(req, res) {
            return res.json(req.params);
        }
    }
}

module.exports = Post;

__NAME is required field. If it is not present then entire file will get ignored.

It will create following URLs:

  • GET /api/posts : Post.index
  • POST /api/posts : Post.create
  • PUT /api/posts : Post.update
  • DELETE /api/posts : Post.destroy
  • GET /api/posts/:id : Post.read
  • GET /api/posts/:x/:y : Post.custom

New in 0.0.5

  • We are moving towards convention over configuration. Now NAME field has become optional in controllers. By default it will consider file name and it can be overridden using NAME field.

  • we have added two more functions to response object to handle success and error responses:

    • res.successJson(json)
    return res.successJson({'message': 'This is success message'});
    
    above code will return below json with http status code 200:
    {
        status: "success",
        data: {
            message: "This is success message"
        }
    }
    • res.errorJson(json)
    return res.successJson({'message': 'This is error message'});
    
    above code will return below json with http status code 400:
    {
        status: "error",
        data: {
            message: "This is error message"
        }
    }
0.2.2

6 years ago

0.2.1

6 years ago

0.1.1

6 years ago

0.1.0

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago