gpt4 book ai didi

rest - 即使请求失败,HTTP 响应也总是返回响应代码 200,并且返回状态代码是 REST 的一部分

转载 作者:行者123 更新时间:2023-12-01 02:44:25 30 4
gpt4 key购买 nike

我最近加入了一个新项目。在这个项目中,所有服务中的 API 总是返回状态码 200。即使该响应应该是 400 或 404,API 也会返回状态码 200。

我问为什么 API 不返回其他响应代码的原因,程序员告诉我他们不使用响应代码。他们把信息放在 body 里。

例如,缺少一些必填字段,它们返回响应状态码 200,但正文返回如下

{"result" : "fail"}

如果未经授权的用户尝试访问,状态码为 200,则正文返回如下
{"result" : "unautherized"}

我之前做的很不一样,我总是按情况指定状态码,并尝试返回合适的状态码和消息。我认为这是 HTTP 协议(protocol)的一部分。但是,他们告诉我指定状态代码,如 400、404、300,是 RESTful API 的一部分,并且总是返回 200 是正确的状态代码,因为服务器响应并且它是事件的。 API,除了 500 外,总是要返回 200。因为当服务器死掉时,它不能返回任何东西。

所以这些是问题。
  • 除了服务器死机之外,服务器应该始终返回状态代码 200?
  • 指定各种状态码是 REST API 的一部分吗?
  • 不使用状态码很常见吗?
  • 最佳答案

    The server should always return status code 200 except the server dies?



    几年前我在软件工程上也问过同样的问题: Do web applications use HTTP as a transport layer, or do they count as an integral part of the HTTP server? .另见 Should I use HTTP status codes to describe application level events .

    Specifying various status code is the part of REST API?



    不,REST 与传输无关。它可以在 HTTP 之上使用,但不是必须的。因此,它没有说明任何关于状态代码的内容。

    Not using status code is common?



    取决于你问谁。

    这是一个偏好问题。我非常不喜欢“场景 X 最合适的状态代码是什么?”问题。此外,还有:
  • HTTP Status Codes
  • HTTP Response Status Codes – REST API Tutorial

  • 还有很多其他的。我记得有一个网站提供了一个流程图来确定(最)合适的状态代码。

    一般来说,不要打扰。一致性和详尽的文档比分配适当的编号更重要。

    关于rest - 即使请求失败,HTTP 响应也总是返回响应代码 200,并且返回状态代码是 REST 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56736771/

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