如何在REST中返回多个资源时处理部分成功

时间:2018-02-08 13:39:56

标签: rest

在REST API中使用HTTP GET获取多个资源时,处理部分成功的设计指南是什么?

假设我有10个客户,其中5个成员身份为"有效"和5的状态为"正在进行验证"

我的用例是返回所有客户记录

HTTP GET /客户应返回10条记录。

然而,在这种情况下,对于5个客户,因为会员资格状态待定,我不会返回它们的所有细节。相反,我将仅返回基本详细信息(id,name),而其余5个客户的成员资格状态为"活跃"我将返回完整的详细信息

从这个角度来看,这是一个部分成功

对于这种情况,是否可以返回HTTP 207并且还有与每个客户记录关联的错误代码?

是否有权要求每个客户记录本身必须具有与之关联的HTTP状态代码?

1 个答案:

答案 0 :(得分:1)

您可以在http://www.restapitutorial.com/httpstatuscodes.html上查看有关REST状态代码的资源。具体地,

  

206部分内容

重要的部分是回应包括:

  

Content-Range标头字段(第14.16节)指示   此响应包含的范围,或多部分/字节范围   Content-Type包括每个部分的Content-Range字段。如果一个   Content-Length头字段存在于响应中,其值必须为MUST   匹配消息体中传输的实际OCTET数。

因此,响应必须明确说明成功返回的内容是什么。207表示多重状态响应,这种响应更为通用,通常不太具有指示性。如果你想要更正式的东西,官方网站是http://www.ietf.org/assignments/http-status-codes/http-status-codes.xml