我们的业务逻辑发生了变化,我们之前使用其中一个API来返回列表,例如.员工名单.最近,我们引入了授权检查,以查看特定用户是否有权查看特定员工.
如果说有10名员工应该通过方法GET返回,由于缺少权限,只返回5.在这种情况下,请求本身是成功的.我目前不确定如何将信息传递给客户,因为缺少权限,有5名员工被过滤掉了.
>这应该映射到HTTP状态代码吗?如果是,哪个状态代码适合这个?或者这根本不是错误?
>在这种情况下,最好的方法是什么?
最佳答案 状态代码本身不足以指示部分响应.状态代码206通过名称听起来很接近,但是当客户端基于头部特定地请求部分数据集时使用状态代码206.
使用200.毕竟,请求已成功完成,并且数据集较小的原因是您的API专有的,因此响应中的额外元数据可能足以指示消息.
假设JSON响应:
{
"data": [ ... ],
"messages": [
"Only some data was returned due to permissions."
]
}
如果您有许多消费者并且担心向后兼容性,您可能还需要提供特定于供应商的版本化JSON媒体类型:
"Content-Type": "application/vnd.myorg-v2+json"