在类中对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你需要的路线文件,同时路线模块保持小而干净。

Interesting Posts