2.0.0 • Published 10 years ago

catnap v2.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

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

Much thanks to cbleslie for the amazing logo!

Logo is licensed under Creative Commons Attribution-NonCommercial

CC NC

2.0.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.1.3

10 years ago

0.1.1

10 years ago