activerest
Provides ActiveRecord-like REST capabilities.
Last updated a year ago by dashby .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install activerest 
SYNC missed versions from official npm registry.

activerest

Usage

var models = activerest(urlOrConfig, definitions);

The first parameter could be just a base URL, or a configuration object detailed below.

Configuration

var API = require('activerest');

var models = new api({
	url: urlString, 		// Default base URL to use

	headers: null,			// Could be an object containing header: value fields OR a function which returns an object
							// The function will be called each time a REST request is made, good for complex
							// authentication methods. It will be called with the path and any post data.

	getMethod: 'GET',		// Override the method used when getting an object
	newMethod: 'PUT',		// Override the method used when creating an object
	findMethod: 'GET',		// Override the method used when finding an object
	updateMethod: 'PUT',	// Override the method used when updating an object

	transform: null,		// Would be a function of form function(req); is passed in the entire request to transform
							// as necessary for complex requests. You can resolve using the callback parameter passed
							// in, or you can resolve by returning a promise.

	statics: {				// A key-value object which defines static objects that should be added to the model
		count: function() { // An example of a function that will be added, such that Model.count calls this function
		}
	}

}, definitions);

Model Definition

The model definitions could be an array, like this:

var models = activerest(config, ['picture', 'note']);

This will give you models.picture and models.note, which will use all the default values. Requests will be:

models.picture.find((err, pictures) => {}); 	// GET /pictures
models.picture.get(1).then(picture => {}); 	// GET /pictures/1
var newpic = new models.picture();

newpic.save();							// POST /pictures

As in above examples, functions can accept a callback (which will receive (err, result)) but will also return a promise with the results.

Model names are automatically pluralized into paths, using the Pluralize module.

picture:		/pictures
puppy:			/puppies
person:			/people

However, things are customizable.

var models = activerest(config, [{
	name: 'picture',					// Name of the returned model
	path: '/picture',					// Customize the path that the model will use
	idProperty: 'picture_id',			// Customize the property used for the ID when updating.
	getMethod: 'GET',					// Override the method used when getting an object
	newMethod: 'PUT',					// Override the method used when creating an object
	findMethod: 'QUERY',				// Override the method used when finding an object
	updateMethod: 'PATCH',				// Override the method used when updating an object
	headers: null,						// Custom function or object to set the headers, overrides the default from config
	transform: null						// As above, this is the last function to be passed the request for transformation
}, {
	name: 'person',	
	url: 'http://domain.com/people'		// Specify a completely different URL just for this
}]);

Current Tags

  • 0.2.5                                ...           latest (a year ago)

9 Versions

  • 0.2.5                                ...           a year ago
  • 0.2.4                                ...           a year ago
  • 0.2.3                                ...           3 years ago
  • 0.2.2                                ...           4 years ago
  • 0.2.1                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.3                                ...           4 years ago
  • 0.1.2                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 3
Last Month 4
Dependencies (2)
Dev Dependencies (3)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |