REST资源的属性级别权限的最佳实践

时间:2018-06-13 11:58:50

标签: rest

想象一下,您在/api/catalogs/1处有REST API返回的资源资源:

{
  items: ['item1', 'item2'],
  details: ['1', '2', '3']
}

想象一下,您希望限制某些用户访问某些响应字段。例如,限制对details字段的访问权限。

问题:在这种情况下哪种响应格式最好?

选项1 - 省略字段。

{
    items: ['item1', 'item2']       
}

选项2 - 返回无效字段。

{
    items: ['item1', 'item2'],
    details: null       
}

还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

这取决于您的需求。

但是,如果API消费者不应该知道某个特定属性的存在(或者无法访问它),那么省略它更有意义而不是返回 null (一旦它可能导致对API使用者的误解)。

答案 1 :(得分:1)

我认为你应该避免显示details至少存在它对消费者来说是一个真正的目的。所以省略那个领域。