gpt4 book ai didi

web-services - REST:将应用程序错误映射到 HTTP 状态代码

转载 作者:行者123 更新时间:2023-12-03 07:50:00 24 4
gpt4 key购买 nike

是否要考虑良好做法 重用 RFC HTTP 状态代码 像这样,或者我们应该是制作新的精确映射 我们具体的错误原因是什么?
我们正在围绕几个遗留应用程序设计一个 Web 服务 API。
除了响应正文中的 JSON/XML 数据结构之外,我们的目标是返回对 Web 缓存和开发人员有意义的 HTTP 状态代码。
但是您如何将不同类别的错误映射到适当的 HTTP 状态代码上呢?团队中的每个人都同意以下几点:

GET /package/1234 returns 404 Not Found if 1234 doesn't exist

GET /package/1234/next_checkpoint returns 400 Bad Request if "next_checkpoint" and 1234 are valid to ask for but next_checkpont here doesn't make sense...


等等......但是,在某些情况下,事情需要比“400”更具体 - 例如:

POST /dispatch/?for_package=1234 returns 412 Precondition Failed if /dispatch and package 1234 both exist, BUT 1234 isn't ready for dispatch just yet.



(编辑: Status codes in HTTP/1.1Status codes in WebDAV ext. )

最佳答案

HTTP 的 RESTful 使用意味着您必须保持 API 统一。这意味着您不能添加特定于域的方法(ala GET_STOCK_QUOTE),但也意味着您不能添加特定于域的错误代码(ala 499 Product Out Of Stock)。

事实上,HTTP 客户端错误代码是一个很好的设计检查,因为如果您正确设计资源语义,HTTP 错误代码的含义将正确表达任何错误。如果你觉得你需要额外的错误代码,你的资源设计可能是错误的。

关于web-services - REST:将应用程序错误映射到 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com