首页 > 解决方案 > node.js 路线设计 - 是否将功能重构为自己的路线?

问题描述

我是 node.js 的新手。在设计应该公开哪些路由时……假设您有一个事件路由,具有标准的 GET、POST、PUT、DELETE。而且,在您的前端应用程序中,假设您要定期更新事件地址。(许多功能之一。)我是否应该有时将这些功能重构为自己的路线?例如,对 /event/:id 执行 PUT 之类的操作并简单地传递新地址会更好吗?还是创建 /eventaddress/:id 之类的路由(对于 PUT)更好?

而且,除了这个例子......假设我有一个函数来计算平均参加人数或 LinkPersonToEvent 等......这些应该放在它自己的路线中并作为端点公开吗?

标签: node.js

解决方案


执行PUT /event/:id然后指定要在实际数据本身中修改的参数(例如{address: someAddress})更具可扩展性,如果需要,它允许调用者一次设置多个事件参数。

如果您想更具体地了解路线,我更喜欢PUT /event/:id/address. 名词是event所以应该是顶级名称,属性是地址,所以应该是子标识符,而不是主标识符。

当人们可以看到整个领域(所有的名词、动词和属性)时,这类问题通常更容易回答。

但我认为GET /event/:id/calculateAverageAttendance会是合适的。但是,是否将其公开为端点的决定完全取决于您是否希望在 API 中使用该功能以及 API 的客户端是否需要或想要它。

对于类似的东西LinkPersonToEvent,这可能是POST /event/:id/linkPerson将人放在身体数据中。如果一个人更像是一个事件的属性,那么这可能是 PUT 而不是 POST。

而且,在您的前端应用程序中,假设您要定期更新事件地址。(许多功能之一。)我是否应该有时将这些功能重构为自己的路线?

如果前端想要定期更新事件地址之类的东西,那么应该有一个有效的途径来做到这一点。它不必是专用于该功能的路由。一个更通用的用途PUT /event/:id,让您可以指定要修改的事件的哪些属性也可以正常工作且高效。


推荐阅读