让我们假设我有一组用户,并且希望从组中添加/删除用户。我感到困惑的是设计这个网站的最佳做法是什么。以下是选项REST设计:使用REST从给定实体添加/删除相关实体
选项#1
POST /组/ {的groupId} /用户 - 请求体将包含用户id DELETE /组/ {的groupId} /用户/ {用户id} - - 用户标识将在路径和请求体将是空的
选项#2
DELETE /组/ {的groupId} /用户 - 请求体将包含用户id POST /组/ {}的groupId /用户/ {} userId的 - 用户ID将在路径和请求主体将是空
我相信这两个问题的答案是正确的,我猜是没有对或错的答案在这里,只是个人喜好。但我想知道什么是广泛使用。我一直在使用OPTION#1,因为我在某本书中读到(这个名字让我感到沮丧),那么当您使用DELETE
时,POST
ing的数据不应该是url
的一部分,因此没有这种最佳实践限制。
所有输入都赞赏!
感谢您的意见!即使请求主体中的唯一内容是用户的ID,您是否认为选项#1仍然有效? – shahshi15
发送DELETE请求时,你不需要在请求体中放置任何东西,因为请求URI已经包含'userId'。只有'POST'和'PUT'请求应该有一个请求体。 –
@xmenymenzmen HTTPbis规范不允许使用DELETE请求的主体。 http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-25#page-29 –