Last active
August 26, 2015 09:52
-
-
Save deholic/f72b1fc94f133c3348bf to your computer and use it in GitHub Desktop.
REST API Routing Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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