Skip to content

Latest commit

 

History

93 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catnap NPM version Build Status Coverage Status

Fast and simple Resource-Oriented Architecture for Node.

Catnap allows you to create elegant REST APIs by describing REST Resources.

It takes care of creating and serving these resources for you.

Installing

$ npm install catnap

Getting Started

Catnap lets you describe resources identified by a name and a path. A resource can have one or many representations and responds to actions (get, post, put, patch an delete.) Here is a contrived example:

var cnp = require('catnap');

cnp.resource('user', '/users/:userId')
    .representation(function (user) {
        // The default representation. Returns a full representation of user
        return user;
    })
    .representation('partial', function (user) {
    	// A named representation that returns a partial representation
    	return pick(user, 'username', 'email');
    })
    .get(function (req, res) {
    	// Action methods take standard connect-middlewares.
        User.findOne({ _id: req.params.userId }, function (err, user) {
            user && res.send(200, cnp('user', user));
        });
    })

The representations map internal entities (such as the ones in your database) into media types. To get the representations of the user resource:

cnp('user', user); // => Calls the default representation
cnp('user', 'partial', user); // => Calls the partial representation

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Licencse

MIT

Original logo design by Kyle Decker and their beautiful website http://catnap.co. Much thanks to cbleslie for the port!

cbleslie's logo is licensed under Creative Commons Attribution-NonCommercial

CC NC

About

Simple Resource-oriented architecture for node

Resources

Stars

74 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages