Build quick and simple RESTfull APIs using Node.js and connect
Resty is a connect middleware which let's you build a simple REST interface for your application. I have found it especially useful when building single page web apps which need a server-side API.
The resources are all laid out in a simple directory structure which helps build a clean perspective of how people can interact with your API.
npm install resty
Simply require the middleware and tell connect to use it:
var connect = require('connect');
var resty = require('resty');
var app = connect.createServer();
app.use(resty.middleware('/path/to/resources/folder'));
app.listen(8080);
Remember to add middleware for authentication and file serving, as resty only provides the routing for the API resources.
Here is what an example resource folder may look like:
├── songs
│ └── songs.js
└── users
├── contacts
│ └── contacts.js
└── users.js
Where a file with the same name as the parent directory will contain the Resources methods and any subfolders are nested resources.
An over-simplified user resource may look like this:
var Users = {
Resource: {
get: function(uid, callback) {
callback(null, {uid: uid, query: this.query});
}
},
Collection: {
get: function(callback) {
callback(null, {all: 'users'});
}
}
}
module.exports = Users;
Users.Resource will be called if the url was /users/123
and Users.Collection will be called if the url was /users/
.