我正在开发一个公开REST API的系统。为了满足某些请求,我的系统需要调用外部api。这些api有时会失败(由于内部服务器错误),这些失败会阻止我的系统成功完成操作。
我的系统应该返回的最佳HTTP状态码是什么?我想将外部系统的故障与系统的内部故障区分开来,因此我对返回500不是特别满意。
对于这些情况,我更喜欢HTTP 502:
10.5.3 502坏网关
服务器作为网关或代理,在尝试完成请求时从它访问的上游服务器收到无效响应。
虽然它在技术上更适合于代理,但我认为这是最接近于区分服务器错误(500)和上游服务器错误的方法。
您可能还想考虑在对外部系统的请求超时的情况下返回HTTP 504:
504网关超时时间
服务器充当网关或代理,并且没有收到上游服务器的及时响应。