具有不同权限的RESTful端点

具有不同权限的RESTful端点,rest,api,Rest,Api,我正在创建一个API,在该API中,可以根据经过身份验证的用户的权限更改对象的不同属性 处理这个问题的常用方法是什么 我应该有像这样的端点吗 /admin/users和/users具有不同的API定义和功能 这听起来是一个相当死板的设计,如果用户可以拥有权限,比如可以修改\u foo\u prop和可以修改\u bar\u prop 我在想一个更好的解决方案是只提供一个端点/users,并且基于经过身份验证的用户角色,一些字段将改为只读/隐藏?这看起来更灵活,但对文档/实现来说可能更烦人。记住,

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

处理这个问题的常用方法是什么

我应该有像这样的端点吗

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

这听起来是一个相当死板的设计,如果用户可以拥有权限,比如
可以修改\u foo\u prop
可以修改\u bar\u prop


我在想一个更好的解决方案是只提供一个端点
/users
,并且基于经过身份验证的用户角色,一些字段将改为只读/隐藏?这看起来更灵活,但对文档/实现来说可能更烦人。

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

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

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