在REST API中使用HTTP GET获取多个资源时,处理部分成功的设计指南是什么?
假设我有10个客户,其中5个成员身份为"有效"和5的状态为"正在进行验证"
我的用例是返回所有客户记录
HTTP GET /客户应返回10条记录。
然而,在这种情况下,对于5个客户,因为会员资格状态待定,我不会返回它们的所有细节。相反,我将仅返回基本详细信息(id,name),而其余5个客户的成员资格状态为"活跃"我将返回完整的详细信息
从这个角度来看,这是一个部分成功
对于这种情况,是否可以返回HTTP 207并且还有与每个客户记录关联的错误代码?
是否有权要求每个客户记录本身必须具有与之关联的HTTP状态代码?
答案 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。