在类中对RESTful API方法进行sorting的最佳实践
我在TypeScript中构build了一个Node.js网站,它公开了一个RESTful API。
将不同的方法分离到不同的类/文件的最佳实践是什么?
我想为每个资源我需要创build一个单独的类。 例如:
class Customers{ router.get('/customers'); router.post('/customers'); router.put('/customers'); router.delete('/customers'); } class Orders{ router.get('/orders'); router.post('/orders'); router.put('/orders'); router.delete('/orders'); }
这是真的? 而如果我有许多资源只包含一个方法,每一个?
例如:
router.get('/orders'); router.post('/customers'); router.put('/products'); router.delete('/employees');
编辑:我被回答,我可以把所有的路线在一个单一的文件,只是把处理程序分成多个文件。 所以我的问题是:如何命令/将它们LOGICALLY分为不同的文件(关于我在我的问题中写的例子)?
注意:我不需要一个技术性的程序化信息,而是一个逻辑分离的抽象解释。
我通常不分离路由本身,所有的路由都在主应用模块中configuration:
// server.js var routes = require('routes'); // handlers and not the route definitions // list of routes router.get('/orders', routes.orderList); router.get('/orders/:id', routes.orderGet); router.post('/customers', routes.customerCreate);
在routes
文件夹下,我有处理程序:
├── routes │ ├── index.js │ ├── orderGet.js │ ├── orderList.js │ ├── customerCreate.js │ ├── ...
index.js
有一个所有路由器的列表(我认为它可以被改进为dynamic生成),每个路由处理器如下所示:
// Require dependencies var Q = require('q'); var models = require('../models'); /* * GET order list. */ exports.route = function(req, res, next){ // Handle input parameters, generate the response }
我的方法是每个路由有一个文件,并使用'methodGroupMeaning'命名,例如'orderGet','orderList'等。
这样文件自然分组在文件系统中(按名称sorting)。 即使是一个拥有多条路线的大型项目,也很容易find你需要的路线文件,同时路线模块保持小而干净。