Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest API响应部分故障并请求客户端重试的行业惯例_Rest_Http_Httpresponse_Api Design_Http Status Codes - Fatal编程技术网

Rest API响应部分故障并请求客户端重试的行业惯例

Rest API响应部分故障并请求客户端重试的行业惯例,rest,http,httpresponse,api-design,http-status-codes,Rest,Http,Httpresponse,Api Design,Http Status Codes,用例: 我正在设计一个更新API,外部客户端可以在其中传递资源信息(JSON格式)以持久化。整个资源以较小资源的形式持久化到多个下游(并行)。因此,如果任何下游出现故障,我计划返回5XX http响应代码以确保客户端重试。但同时要确保客户机知道资源的哪一部分是成功的 我研究了关于HTTP响应代码207和202的其他类似问题(,),但它们不适用于我的用例,因为这不是一个批处理请求,整个资源可以划分为外部客户端的较小资源。据我所知,202适用于异步处理场景,在这种场景中,我们能够接受请求并且仍在处理

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

我研究了关于HTTP响应代码207和202的其他类似问题(,),但它们不适用于我的用例,因为这不是一个批处理请求,整个资源可以划分为外部客户端的较小资源。据我所知,202适用于异步处理场景,在这种场景中,我们能够接受请求并且仍在处理,而在我的情况下,我希望确保客户机知道请求失败,他应该重试

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


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

老实说,您已经谈到了子资源、部分成功以及能够重试失败的方法。所有这些特性在HTTP中都是完全可用的,如果您只需再多做一步:将请求拆分为多个请求,则将工作得非常好。

大多数前端库/框架将考虑5xx作为错误,响应将在错误处理代码中出现。因此,他们没有必要提供错误代码为5XX的部分响应。