繁体   English   中英

是一个没有数据的RESTful PUT“洁净”,还是应该始终使用DELETE?

[英]Is a RESTful PUT with no data “kosher,” or should a DELETE always be used?

我有一个适用于资源的数组字段的RESTful路由,例如:

放置/:id / mylist

进行PUT时,如果输入为空,则会引发错误。 也就是说,如果传递了空数组。 我需要数组中至少一个元素。 因此,如果资源具有九个元素的数组,并且路由被调用到PUT 3,则这三个将替换现有的九个元素。

但是您不能传递任何元素,因为那样会擦除九个元素,什么也不留下。

但是,不允许使用任何元素-在我看来,允许在PUT中“清除”数组是错误的,因此只能这样做:

删除/:id / mylist

我错了吗? 都可以吗 是一个比另一个更好的选择吗?

我认为对列表资源执行DELETE操作将推断该列表不再存在,并且将来对URL的GET请求将返回404。

但是,使用空列表进行PUT将导致将来的GET请求返回200和空列表(无论如何表示)。

我想说这两种都是有效的方法,仅取决于一种最自然的资源语义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM