open-router
==================
A router for restify or framework based on restify.
Node version
>= 6
Usage
npm install open-router --save
Example router definition
var Router = ; /** * @return router instance * * @params server * restify.createServer() return result * @params controllers * All controllers object, * { * controllerName: { * methodName: method * } * } * @params defaultCtl * { * list: function() {}, * modify: function() {}, * detail: function() {}, * remove: function() {}, * add: function() * } * @params opts * apis The uri list all rest api; */var router = ; //or chainning call, without argument order.// var router = Router// .server(server)// .ctls(controllers)// .defaults(defaultCtl)// .opts(opts)// .exec()
Methods
router.get(routePath, actionPath)
HTTP.verb GET
Equivalent to
GET: /routePath
Arguments
routePath
- uri ,eg/users/:id
or/users/:userId/books
actionPath
- controllerMethodPath,eg.user#detail
{ user: detail: function() {} }
Example
router; When request `/users` by GET user controller's `list` method will be called.
router.put(routePath, actionPath)
HTTP.verb PUT
Equivalent to
PUT: /routePath
Arguments
routePath
- uri ,eg/users/:id
or/users/:userId/books
actionPath
- controllerMethodPath,eg.user#detail
{ user: detail: function() {} }
Example
router; When request `/users/:id` by PUT user controller's `modify` method will be called.
router.patch(routePath, actionPath)
HTTP.verb PATCH
Equivalent to
PATCH: /routePath
router.post(routePath, actionPath)
HTTP.verb POST
Equivalent to
POST: /routePath
router.del(routePath, actionPath)
HTTP.verb DELETE
Equivalent to
DELETE: /routePath
router.resource(name, routePath)
HTTP.verb DELETE
or GET
or PATCH
or PUT
Equivalent to
POST: /routePath PUT: /routePath/:id PATCH: /routePath/:id GET: /routePath GET: /routePath/:id DELETE: /routePath/:id
Arguments
name
- Response's name. eg:user
,book
,order
routePath
- optional, uri
Example
router // Equivalent to// router.get('/users', 'user#list');// router.get('/users/:id', 'user#detail');// router.put('/users/:id', 'user#modify');// router.patch('/users/:id', 'user#modify');// router.delete('/users/:id', 'user#remove');// router.post('/users', 'user#add');
router.model(name, routePath)
HTTP.verb DELETE
or GET
or PATCH
or PUT
Equivalent to
PUT: /routePath PATCH: /routePath GET: /routePath DELETE: /routePath
Arguments
name
- Response's name. eg:user
,book
,order
routePath
- optional, uri
Example
router // Equivalent to// router.get('/users/:id', 'user#detail');// router.put('/users/:id', 'user#modify');// router.patch('/users/:id', 'user#modify');// router.delete('/users/:id', 'user#remove'); router // Equivalent to// router.get('/systems/users/:id', 'user#detail');// router.put('/systems/users/:id', 'user#modify');// router.patch('/systems/users/:id', 'user#modify');// router.delete('/systems/users/:id', 'user#remove');
router.collection(name, routePath)
HTTP.verb DELETE
or GET
or PATCH
or PUT
Equivalent to
// List the resource GET: /routePath // Create a resource POST: /routePath
Arguments
name
- Response's name. eg:user
,book
,order
routePath
- optional, uriparent
- optional, The resource's parent resource name
Example
router // Equivalent to // router.get('/users/:userId/books', 'user#books');// router.post('/users/:userId/books', 'user#addBook'); router // Equivalent to // router.get('/users/:creatorId/books', 'user#books');// router.post('/users/:creatorId/books', 'user#addBook');