API响应部分失败并要求客户重试的行业惯例

时间:2018-12-03 10:24:12

标签: rest http httpresponse api-design http-status-codes

使用案例: 我正在设计一个更新API,外部客户端可以在其中传递资源信息(JSON格式)以持久化。整个资源以较小资源的形式持久化到多个下游(并行)。因此,如果下游有任何故障,我计划返回5XX http响应代码以确保客户端重试。但是同时要确保客户端知道资源的哪一部分是成功的。

我研究了有关HTTP响应代码207和202的其他类似问题(Q1Q2),但它们不适用于我的用例,因为这不是批处理请求,也不是完整请求。资源可以分为较小的资源供外部客户端使用。根据我的理解,202适用于我们能够接受请求并且仍在处理的异步处理方案,而在我的情况下,我想确保客户端知道请求失败并且应该重试。

正在考虑的方法 我计划将HTTP响应代码返回为5XX,但同时会将部分资源(JSON格式)添加到成功的响应中。

我想知道上述方法是否已被行业标准接受,是否有人解决了这种用例。

1 个答案:

答案 0 :(得分:0)

老实说,您已经在谈论子资源,部分成功以及能够重试失败的资源。所有这些功能都可以通过HTTP完美使用,并且如果您又迈出了一步:将请求拆分为多个请求,它们将可以很好地工作。