【问题标题】:Would a 404 be acceptable for a DELETE method being called on a non-existent URL?在不存在的 URL 上调用 DELETE 方法是否可以接受 404?
【发布时间】:2017-10-13 12:26:40
【问题描述】:
我对 RESTful 世界很陌生,目前我正在争论是否在对不存在的 URL 调用删除方法时,是否应该返回 404 Resource Not Found。目前,该代码返回一个200 OK 代码,但这并没有告知用户他们想要做的事情是不可能的。
我在网上和这里都看过,很多人对这个问题意见不一,HTTP没有返回码标准。
(我正在考虑这样一种情况,有人想要删除某些东西,但通过拼写错误,删除了无效资源但没有返回错误代码,没有被告知删除不成功,并且没有'没有意识到错误。)
【问题讨论】:
标签:
rest
http
web
http-status-codes
http-delete
【解决方案1】:
我会返回 404 并让前端开发人员决定如何处理这种情况。作为前端开发人员,如果我的用户试图删除不存在的资源,我想处理这种情况。可能是在我找到资源到现在之间,资源被另一个用户删除了。另一方面,可能是你说的有错别字。
但无论如何,我想知道用户是否试图删除不再存在的资源,以便我可以适当地处理这种情况。
但是这种情况取决于您正在构建的应用程序的类型。例如,如果另一个用户在过去 5 分钟内删除了资源,您可能希望返回 410,然后为所有不存在的 URL 返回 404。但再一次,如果某些内容被实际删除,我只希望返回 200。
SharePoint REST 遵循此模式。