我在考虑如何让 RESTFul API 更能揭示意图。我在各种博客中看到的一个常见模式是,传统的 REST API 导致
禁止玩家 -> POST /players.
但是我要改成一个更能揭示意图的界面,我可以使用
禁止玩家 -> POST /players/{ playerid }/banPlayer
我觉得第二个更能揭示意图。
我从团队那里得到的普遍反对意见是第二个不符合 start REST 风格。
此外,目前我无法摆脱 RESTful API。
我想听听您对此的看法。
对于 Restful API 设计,关于如何应用于actions资源有两种思想流派。
您描述了要对 Uri 中的资源采取的操作:
请求 Uri:
POST /players/{id}/ban
注意:只需使用ban- 我们已经知道资源是一个玩家,它在基础 Uri 中。
您可以在请求正文中执行操作:
请求 Uri:
POST /players/{id}
请求正文:
{ 'action': 'ban' }
您可以选择任何一种方式 - 无论您喜欢哪种方式,都有很多关于两者的讨论,但最终两者都是正确的。
笔记:
我在这里假设禁止玩家不仅仅是更新其中的一部分,而是与玩家相关的系统操作(或状态转换)。否则,如果它只是对播放器资源的更新,则应酌情使用 PATCH 或 PUT 进行处理。
一些讨论供参考:
如果你做一些谷歌搜索,还有更多......
| 归档时间: |
|
| 查看次数: |
6000 次 |
| 最近记录: |