crude

Creates CRUD RESTfull endpoints for a given route

Crude

Creates CRUD RESTfull endpoints for a given route.

npm install crude --save

Crude requires a controller with the following methods and signatures:

var crude = require('crude');
 
var controller = {
    createfunction(data) { return Promise(response); }),
    readfunction(query) { return Promise(response); }),
    readLimitfunction(queryskiplimit) { return Promise(response); }),
    readOnefunction(query) { return Promise(response); }),
    updatefunction(querydata) { return Promise(response); }),
    countfunction(query) { return Promise(response); }),
};
 
// Create the user CRUD routes 
var userCrude = crude('/user', controller, expressApp);

That was it, you now have a RESTfull CRUD API under the route /user:

  • POST /user Create a new user.
  • GET /user Get a list of all the users paginated.
  • GET /user/:id Get a single user item.
  • PUT /user/:id Update the user item, expects the entirety of the resource to be updated.
  • PATCH /user/:id Update the user item, expects a part of the resource to be updated.
  • DELETE /user/:id Delete the user item.

HTTP methods were mapped based on RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: HTTP Method Definitions.

Find the complete API Documentation in the wiki.

This package assumes you have the following stack:

  • Express
  • v0.7.4, 09 Dec 2014
    • Upgrade all dependencies to latest.
  • v0.7.3, 24 Nov 2014
    • Better heuristics for detected nodeON Error objects
  • v0.7.1, 16 Sep 2014
  • v0.7.0, 14 Sep 2014
    • Middleware are now of express type vs being Promises.
  • v0.6.3, 11 Sep 2014
    • Issue a HTTP Bad Request error code (400) by default vs Internal Error (500).
  • v0.6.2, 11 Sep 2014
    • Make config a synch method returning self.
  • v0.6.1, 10 Sep 2014
    • Changed HTTP Verbs for update to PUT and PATCH, thank you @dmtrs.
  • v0.6.0, 08 Sep 2014
    • A complete refactor of the codebase and API has happened, documentation ready, time to hit the spotlight.
  • v0.5.13, 01 Sep 2014
    • Populates total item count for pagination query.
    • Express 4.0 compatible.
  • v0.5.12, 06 Aug 2014
    • No longer assume that readLimit OP result is an array.
    • Invoke the right methods when performing an update
  • v0.5.9, 07 Jul 2014
    • Pagination limit is now configurable via opts.paginateLimit.
  • v0.5.8, 07 Jul 2014
    • if ownUser flag is on then auth is required.
    • upgrade req.host to req.hostname in par with express 4.x
  • v0.5.7, 04 Jul 2014
    • Exclude page and limit query variables.

View the rest of the changelog here.

Copyright 2014 Thanasis Polychronakis

Licensed under the MIT License