是否有必要尝试删除该资源时返回`404未Found`?
问题描述:
我在想,如果有必要与当客户端试图删除用户404
状态代码返回User doesn't exist
消息。是否有必要尝试删除该资源时返回`404未Found`?
如果我们要删除用户,那么返回
User doesn't exist
消息有什么意义?如果我们想知道用户确实存在或不存在,我们将使用
GET
方法而不是DELETE
方法吗?如果用户甚至不之前存在,那么就不会被显示在列表中,你会如何想删除它?假设我在浏览器中打开了两个选项卡,然后在第一个选项卡中删除了用户,现在我试图删除第二个选项卡中的同一用户,我应该获得200 OK
状态还是404 Not Found
?
该用户不存在了,这不是我想要的吗?对我来说不应该是OK
?
答
一般而言,当您尝试GET
不存在的资源,你应该返回404(与消息一起,如果你想)。
当您尝试使用DELETE
资源时,意图是“此资源在此调用之后不应该存在”,您应始终返回2XX代码(如果没有内容 - 一般情况下为204),或者200/202是你有的选择)。该资源已被删除或从未存在不与意图相冲突,所以没有来回报404
希望这有助于事实。
如果您删除操作经过成功的话,那就是你返回状态代码确定最好的,这意味着你的手术很成功。 – Sparrow