【发布时间】:2020-10-09 20:49:10
【问题描述】:
我在考虑如何让 RESTFul API 更能揭示意图。我在各种博客中看到的一个常见模式是,传统的 REST API 会导致
禁止玩家 -> POST /players.
但是我要换一个更显意图的界面,我可以用
禁止玩家 -> POST /players/{ playerid }/banPlayer
我觉得第二个更暴露意图。
我从团队中得到的普遍反对意见是第二个不符合 start REST 样式。
目前我也无法摆脱 RESTful API。
我想听听您对此的看法。
【问题讨论】:
-
REST 根本不关心 URI 设计,因为它只是一种将客户端与服务器分离的技术,客户端不应尝试从 URI 中提取知识,因为如果服务器更改 URI,这可能会中断在某一点。相反,客户端和 API 都应该使用关系名称并支持表达某些语义的特殊媒体类型。媒体类型只是对语法及其要交换的数据语义的纯文本描述。
-
怎么样(有点滑稽)
BAN /players/{playerid} HTTP/3 -
除了标签和标题,我想你忘了提到CQRS在这方面有什么作用。