【发布时间】:2019-05-04 15:03:30
【问题描述】:
用例: 我正在设计一个更新 API,外部客户端可以在其中传递资源信息(以 JSON 格式)以保持不变。整个资源以较小资源的形式持久化到多个下游(并行)。因此,如果任何一个下游发生故障,我计划返回 5XX http 响应代码以确保客户端重试。但同时要确保客户端知道资源的哪一部分是成功的。
我查看了关于 HTTP 响应代码为 207 和 202 的其他类似问题(Q1、Q2),但它们不适用于我的用例,因为这不是批处理请求,并且可以使用完整资源为外部客户划分较小的资源。据我了解,202 适用于我们能够接受请求并仍在处理的异步处理场景,而在我的情况下,我想确保客户端知道请求失败并且他应该重试。
正在考虑的方法 我计划将 HTTP 响应代码返回为 5XX,但同时将资源的一部分(JSON 格式)添加到成功的响应中。
我想知道上述方法是否被行业标准接受,是否有人解决了此类用例。
【问题讨论】:
-
大部分前端库/框架都会将 5XX 视为错误,响应会落在错误处理代码中。因此,他们没有必要提供错误代码 5XX 的部分响应。
标签: rest http httpresponse api-design http-status-codes