在DELETE之后返回集合的剩余部分是否认为是错误的做法



假设我们有一个rest api和一个集合(最多有15个项(。客户端正在发出集合中某个项目的DELETE。退回收藏中的剩余物品是否被视为不良做法?DELETE是否应始终返回空正文?如果这不是一种糟糕的做法,那么什么是正确的状态代码?

我的主要问题是,有一个items的列表,我是DELETE的列表,可以返回remaining items的列表吗?

如RFC 7231:中所定义

如果成功应用DELETE方法,则原始服务器如果操作可能发生,则应发送202(已接受(状态代码成功但尚未颁布,204(无内容(状态如果行动已经实施,并且没有进一步的信息要提供的,或200(OK(状态代码(如果操作已完成(并且响应消息包括表示描述状态。

Mozilla有一个例子:

HTTP/1.1 200 OK 
Date: Wed, 21 Oct 2015 07:28:00 GMT
<html>
<body>
<h1>File deleted.</h1> 
</body>
</html>

在我看来,如果你的集合本身就是一个资源,那么DELETE应该删除整个集合(而不是它的一部分(,在这种情况下,成功删除后我会返回200 OK。

如果您想删除一个特定的资源(而不是集合(,那么在它自己的URI中删除它,并返回200 OK。

只是不要篡夺DELETE来更新集合。

所以没有。不要归还剩余的藏品。返回状态代码。

最新更新