重用这样的 RFC HTTP 状态代码是否被认为是一种好的做法,还是我们应该制作新的代码来精确映射到我们的特定错误原因?
我们正在围绕几个遗留应用程序设计一个 Web 服务 API。
除了响应正文中的 JSON/XML 数据结构外,我们的目标是返回对 Web 缓存和开发人员有意义的 HTTP 状态代码。
但是如何将不同类别的错误映射到适当的 HTTP 状态代码上呢?团队中的每个人都同意以下几点:
如果 1234 不存在,则GET /package/1234返回404 Not Found
GET /package/1234/next_checkpoint返回400 Bad Request如果“next_checkpoint”和1234 是有效的请求但 next_checkpont 这里没有意义......
等等......但是,在某些情况下,事情需要比“400”更具体 - 例如:
POST /dispatch/?for_package=1234返回412 Precondition Failed如果 /dispatch 和包 1234 都存在,但 1234 还没有准备好发送。