Awesome
Crude
Creates CRUD RESTfull endpoints for a given route.
Install
npm install crude --save
Quick Start
Crude requires a controller with the following methods and signatures:
var crude = require('crude');
var controller = {
create: function(data) { return Promise(response); }),
read: function(query) { return Promise(response); }),
readLimit: function(query, skip, limit) { return Promise(response); }),
readOne: function(query) { return Promise(response); }),
update: function(query, data) { return Promise(response); }),
count: function(query) { return Promise(response); }),
};
// Create the user CRUD routes
var userCrude = crude('/user', controller);
// Add routes as express middleware
userCrude.addRoutes(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.
Documentation
Find the complete API Documentation in the wiki.
Stack
This package assumes you have the following stack:
- Express
Release History
- v1.0.0, 03 Nov 2016
- Added the
maxPaginateLimit
option to cap allowed items per pagination.
- Added the
- v0.9.1, 07 Sep 2015
- Added the
multiQueryAnd
option to allow for use of theAND
operator in multiple items filter queries vs the defaultOR
.
- Added the
- v0.9.0, 03 Sep 2015
- No longer performs a "readOne" after an update operation, this can potentially be a breaking change for you.
- v0.8.0, 28 Jul 2015
- Will now return an HTTP Status 200 when no results for reading multiple records (used to return 404).
- v0.7.5, 23 Jul 2015
- Will now allow for GET queries with multiple items per attribute.
- 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
- Switched CRUD middleware to FIFO.
- Added Query Middleware on all CRUD OPs.
- 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
andPATCH
, thank you @dmtrs.
- Changed HTTP Verbs for update to
- 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
- No longer assume that
- v0.5.9, 07 Jul 2014
- Pagination limit is now configurable via
opts.paginateLimit
.
- Pagination limit is now configurable via
- v0.5.8, 07 Jul 2014
- if ownUser flag is on then auth is required.
- upgrade
req.host
toreq.hostname
in par with express 4.x
- v0.5.7, 04 Jul 2014
- Exclude
page
andlimit
query variables.
- Exclude
View the rest of the changelog here.
License
Copyright Thanasis Polychronakis
Licensed under the MIT License