Skip to content

Instantly share code, notes, and snippets.

@deholic
Last active August 26, 2015 09:52
Show Gist options
  • Save deholic/f72b1fc94f133c3348bf to your computer and use it in GitHub Desktop.
Save deholic/f72b1fc94f133c3348bf to your computer and use it in GitHub Desktop.
REST API Routing Code
// USER API
server.get('/:version/user/:userId', route, finished);
server.post('/:version/user', route, finished);
server.put('/:version/user/:userId', route, finished);
function route(req, res, next)
{
var routeString = getRoutePathString(req.url);
var target;
switch (req.method)
{
case 'GET':
target = require(routeString).get;
break;
case 'POST':
target = require(routeString).post;
break;
case 'PUT':
target = require(routeString).put;
break;
case 'DELETE':
target = require(routeString).delete;
break;
}
if (target != null)
{
return target(req, res, next);
}
else
{
res.error();
return next();
}
}
function getRoutePathString(urlString)
{
var urlPart = _.compact(urlString.split('/'));
var mappingPart = _.map(urlPart, _.parseInt);
var completeRoutePath = '';
for (i = 0; i < urlPart.length; i++)
{
if (completeRoutePath.length == 0)
completeRoutePath += '.';
if (_.isNaN(mappingPart[i]))
completeRoutePath += '/' + urlPart[i];
}
return completeRoutePath;
}
function finished()
{
console.log("blah blah");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment