node.js - node.js 路线设计 - 是否将功能重构为自己的路线?
问题描述
我是 node.js 的新手。在设计应该公开哪些路由时……假设您有一个事件路由,具有标准的 GET、POST、PUT、DELETE。而且,在您的前端应用程序中,假设您要定期更新事件地址。(许多功能之一。)我是否应该有时将这些功能重构为自己的路线?例如,对 /event/:id 执行 PUT 之类的操作并简单地传递新地址会更好吗?还是创建 /eventaddress/:id 之类的路由(对于 PUT)更好?
而且,除了这个例子......假设我有一个函数来计算平均参加人数或 LinkPersonToEvent 等......这些应该放在它自己的路线中并作为端点公开吗?
解决方案
执行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
,让您可以指定要修改的事件的哪些属性也可以正常工作且高效。
推荐阅读
- julia - 为什么我在 Julia 中的代码会因为更高的迭代而变慢?
- ubuntu - 如何删除 /usr/local/bin/docker-compose Ubuntu
- c# - 字节数据类型编译时抛出错误
- powerbi - 两个表的不同计数的 DAX 平均值
- c# - 如何在另一个方法中动态更改 textBlock 的内容?
- javascript - 为什么聊天小部件读取属性“样式”显示为空
- php - 做一个条件正则表达式
- angular - 无法使用 AgmMarkerSpiderModule
- python - python - 如何通过类似于curl的python中的post请求发送文件?(W3C 验证者)
- java - Apache Solr - 索引 ZIP 文件