我知道这是一个常见的问题,但我读了很多,我觉得有点愚蠢,我看不出真正的差异
此处的示例: https://www.smashingmagazine.com/2016/09/understanding-rest-and-rpc-for-http-apis/
[场景]:从聊天频道踢出用户
RPC (正确的选项,为此使用RPC)
POST /api/channels.kick HTTP/1.1
Host: slack.com
Content-Type: application/json
{
"token": "xxxx-xxxxxxxxx-xxxx",
"channel": "C1234567890",
"user": "U1234567890"
}
REST (糟糕的选择,REST不利于此)
DELETE /channels/catgifs/users/jerkface HTTP/1.1
Host: api.example.com
现在:
1。为什么第一个RPC示例不是REST?它看起来对我来说是一个有效的REST
2。为什么REST替代方案最差?
(文章说因为那时我们需要一个不同的URI来踢,禁止,离开......这有什么问题?使用RPC我们也需要不同的URL ...)
RPC和REST之间的区别仅在于语义或“约定”吗?
使用RPC我们必须在URL上使用动词
使用REST,URL没有动词,只有资源,动词是HTTP方法吗?