Skip to content

chazzu/activerest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
}]);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published