我正在考虑在客户端尝试删除用户时是否有必要使用User doesn't exist
状态代码返回404
消息。
如果我们要删除用户,那么返回User doesn't exist
消息的重点是什么?
如果我们想知道用户是否存在,我们会使用GET
方法而不是DELETE
方法吗?如果用户之前不存在,那么它将不会显示在列表中,您希望如何删除它?
假设我在浏览器上打开了两个标签,然后我在第一个标签中删除了该用户,现在我正在尝试删除第二个标签中的同一个用户,如果我获得200 OK
状态还是404 Not Found
?
用户不再存在,这不是我想要的吗?对我来说不应该是OK
吗?
答案 0 :(得分:1)
作为一般规则,当您尝试GET
不存在的资源时,应返回404(如果需要,还应返回消息)。
当您尝试DELETE
资源时,意图是“此资源在此调用后不应存在”,您应该始终返回2XX代码(如果没有内容则为204 - 一般情况 - ,或者200/202是您的选择)。资源已被删除或从未存在的事实与意图不冲突,因此返回404是没有用的。
希望这有帮助。