gpt4 book ai didi

json - 在 JSend 规范中,失败和错误有什么区别?

转载 作者:行者123 更新时间:2023-12-04 01:21:43 25 4
gpt4 key购买 nike

根据 https://labs.omniti.com/labs/jsend

  • 失败:当 API 调用因无效数据或调用条件而被拒绝时
  • 错误:当 API 调用因服务器错误而失败时

  • 这是否可以解释为 4xx 错误(例如 404)应始终返回失败,但 5xx 错误始终对应于错误?

    最佳答案

    这是一个很好的问题,我将根据我自己的经验用一个具体的例子来回答它。在我的一个项目的 API 中,我允许上传 Excel 电子表格,该电子表格经过处理并将生成的 JSON 存储在服务器上。

    如果将数据保存到磁盘时出现错误,那么我会以 JSend“错误”以及相应的错误消息作为响应,因为数据应该能够被保存。

    另一方面,如果其中一行中的数据无效(可能是数据类型不正确或范围错误),那么我知道电子表格中不正确的确切行(或行)。在这种情况下,“失败”响应是合适的,因为 JSend 响应的 data 属性将包含每个不可处理行的所有行(行号和错误消息)的列表。

    在“错误”响应的情况下,我不会有这种能力,因为我将被限制为单个 message 属性。但是对于“失败”响应,我有 data 属性可用,我可以在其中以细粒度的问题列表进行响应。

    因此,虽然没有错误,但数据本身并不正确,用户应该返回并查看他们的电子表格并修复“失败”响应中 data 属性确定的问题。

    从 HTTP 错误的角度考虑这一点,虽然是一个有趣的练习,但并不总是会产生精确的映射(4xx = 失败,5xx = 错误)。它更多地是关于您想与客户端通信的内容:发生了不应该发生的坏事(“错误”)或服务器工作正常但您的数据不完全符合标准(“失败”)。

    最后,您是否还想使用 HTTP 错误完全取决于您。你总是可以用 200 来回应,让 JSend 来说话。但这是一个稍微不同(有点宗教)的讨论。 :-)

    我希望这有帮助。

    关于json - 在 JSend 规范中,失败和错误有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199033/

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