外部 API 关闭时的 REST API 状态 - 最佳实践

dar*_*eam 1 rest web-services http

在从 REST API 返回错误时,我正在寻找有关良好实践的指南。我正在开发一个新的 API,所以我可以朝任何方向发展。

在我的情况下,客户端调用我的 API,它在内部调用一些外部 API。如果成功没问题,但如果来自远端(外部云 API)的错误响应,我不确定此类服务的行业标准是什么。我目前正在考虑返回 200 OK,然后返回一个 json 有效负载,其中详细说明了外部 API 错误。

那么行业的建议是什么?良好的实践(请解释原因!)此外,从客户端的观点来看,REST API 中的哪种错误处理使客户端代码的工作更轻松?

小智 5

您要问的故障是发生在服务本身内部的故障,尽管它具有外部依赖性,因此5XX状态代码范围是正确的选择。503 Service Unavailable 看起来非常适合您所描述的情况。

5XX 代码用于告诉客户端即使请求没有问题,服务器在完成请求时遇到了某种问题。另一方面,

4XX 代码用于告诉客户端它在请求中做错了什么(并且服务器很好,谢谢)。 HTTP 1.1 规范的第 10.4 和 10.5 节解释了 4XX 和 5XX 代码的不同用途。