70

我有一个带有 uri 的资源/api/books/122,如果在客户端为此资源发送 HTTP Delete 时该资源不存在,那么此操作的适当响应代码是什么?是 404 未找到吗?
谢谢

4

3 回答 3

92

删除调用的响应代码可以是以下任何一种:

  • DELETE /api/book/122- 服务器成功处理了请求,但没有返回任何内容
    • 204 No Content
  • DELETE /api/book/122- 资源不存在
    • 404 Not Found
  • DELETE /api/book/122- 资源已删除
    • 410 Gone
  • DELETE /api/book/122- 用户没有权限

    • 403 Forbidden
  • DELETE /api/book/122- 不允许的方法

    • 405 Method Not Allowed
  • DELETE /api/book/122- 冲突(用户可以解决冲突并删除)

    • 409 Conflict

在你的情况下 404 是合适的。

于 2016-02-26T05:02:09.743 回答
43

是的,应该是 404。

通常,如果请求以某种方式错误,则会出现 400 系列错误,如果服务器出现问题,则会出现 500 系列错误。

于 2013-07-26T14:50:13.647 回答
-1

我建议看一下这个流程图。它显然比你需要的多一点,但对未来的读者来说是一个很好的资源。可悲的是,没有摘录可能。

http决策图

在此处输入图像描述

于 2021-10-31T18:44:11.420 回答