Api 是一个没有数据的RESTful PUT“;洁食;还是应该始终使用删除?

Api 是一个没有数据的RESTful PUT“;洁食;还是应该始终使用删除?,api,rest,Api,Rest,我有一个RESTful路由,它在资源的数组字段上工作,例如: PUT/:id/mylist 当我执行PUT时,如果输入为空,我会抛出一个错误。也就是说,如果传递了一个空数组。我需要数组中至少有一个元素。因此,如果资源有一个包含九个元素的数组,并且调用路由来放置三个元素,那么这三个元素将替换现有的九个元素 但是不能传入任何元素,因为这样会删除九个元素而什么也不留下 但是,不允许有任何元素-在我看来,允许数组在PUT中“清除”是错误的,并且只能这样做: 删除/:id/mylist 我错了吗?你们都还

我有一个RESTful路由,它在资源的数组字段上工作,例如:

PUT/:id/mylist

当我执行PUT时,如果输入为空,我会抛出一个错误。也就是说,如果传递了一个空数组。我需要数组中至少有一个元素。因此,如果资源有一个包含九个元素的数组,并且调用路由来放置三个元素,那么这三个元素将替换现有的九个元素

但是不能传入任何元素,因为这样会删除九个元素而什么也不留下

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

删除/:id/mylist


我错了吗?你们都还好吗?一个优先于另一个吗?

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

但是,使用空列表执行PUT将导致将来的GET请求返回200和空列表(不管它是如何表示的)


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

我发现我同意这一点——两种方法都有效,但PUT似乎更直观,因为我已经对它进行了更多的思考,并从一些人那里听到了。谢谢