当第 3 方 API 不断发送 500 内部服务器错误时,我的 API 的 http 状态代码应该是什么

问题描述 投票:0回答:3

我正在开发一个内部使用第 3 方 API 的 API。我的 API 响应取决于该第 3 方 API。当第 3 方 API 给出 500 内部服务器错误时,状态代码应该是什么,这个错误是意料之中的。

我读过一些关于它的文章,其中大多数建议不要故意在 API 响应中返回 5XX。我很困惑状态码应该是什么?因为我不想将它隐藏在 4XX 后面,而且根据文章,我无法决定这种情况是应该出现在预期情况下还是意外情况下? (我知道这种情况通常会发生)。

api http httpresponse
3个回答
0
投票

4XX 错误表示client 做错了。
5XX 错误表示 server 做错了什么。

在你的情况下,我会使用 502 - Bad Gateway 错误消息,如

External error: {error from 3rd party API}


0
投票

如果 The error is expected as you mentioned,你应该能够知道错误的来源是什么,来自客户端的错误输入?如果是这样,可能是您在调用第三方 API 之前缺少数据验证步骤。

无论如何,正如@Justinas 所说,Http 返回代码非常简单。


-1
投票

如果您的 API 依赖于第三方 API,并且该 API 返回 500 内部服务器错误,则也可以从您的 API 返回 5xx 状态代码。但是,您不应故意从您的 API 返回 5xx 状态代码,因为这会产生误导并可能导致您的用户感到困惑。

相反,您应该考虑使用 5xx 范围内的状态代码来准确反映情况。例如,您可以返回 503 Service Unavailable 状态代码,这表明该服务由于维护或其他您无法控制的原因暂时不可用。或者,您可以返回 502 Bad Gateway 状态代码,表示服务器从上游服务器收到无效响应。

在任何一种情况下,重要的是向您的用户提供清晰且信息丰富的错误消息,解释情况以及他们可以采取的解决问题的任何步骤。这将有助于确保您的用户不会因错误而感到困惑或沮丧,并且将来更有可能继续使用您的 API。

© www.soinside.com 2019 - 2024. All rights reserved.