REST API 中 DELETE 请求的响应状态码

在 REST API 的设计中,DELETE 方法用来删除资源。比如,发送 DELETE 请求到 /user/123 可以删除 ID 为 123user 资源。DELETE 请求的响应状态码一般为 204 No Content,表示没有响应内容。

一个常见的疑问是,如果要删除的资源不存在,响应状态码应该是 204 还是 404?使用 204 的动机可能是确保 DELETE 请求的幂等性。当第一个 DELETE 请求删除某个资源之后,再次发送同样的 DELETE 请求会得到同样的 204 状态码。

实际上,请求的幂等性并不包含响应状态码。使用不同的状态码并不会改变请求的幂等性。使用 404 可以更好的描述删除请求的结果。

在实际开发中,对于 DELETE 请求响应状态码并没有足够的共识。有时候 200 也会被用来作为 DELETE 请求的响应状态码。每个开发团队也可能有自己内部的规范。

总得来说,推荐的做法是:

  • 如果 DELETE 请求成功删除指定资源,返回 204
  • 如果找不到指定资源,返回 404
版权所有 © 2024 灵动代码