具有不同权限的RESTful端点

时间:2017-03-13 08:41:06

标签: rest api

我正在创建一个API,根据权限验证用户可以更改对象的不同属性。

解决这个问题的常用方法是什么?

我应该有像

这样的端点吗?

/admin/users/users具有不同的API定义和功能?

听起来设计相当不灵活,用户可以获得can_modify_foo_propcan_modify_bar_prop等权限的情况如何?

我在想更好的解决方案是只提供一个端点/users并根据经过身份验证的用户角色,某些字段是只读/隐藏的?这似乎更灵活,但文档/实施可能更烦人。

1 个答案:

答案 0 :(得分:0)

请记住,URI表示统一资源标识符。这意味着给定用户(概念)应始终由相同的URI标识,因此我建议您的第二个提议,即具有单个层次结构/用户列表:

/users/1
/users/2
...

可以根据当前用户的权限定义(在适当的媒体类型中)返回文档以保存属性。

现在,关于这是否易于使用是主观的。我认为返回纯数据总是总是有点不方便,因为客户端必须解析和理解数据。这就是创建HTML和HTML表单的原因,因此客户端不需要知道如何来呈现数据,也不需要知道什么是可编辑的,什么是不。然后,我再也不知道你确切的用例。