【问题标题】:RESTful endpoints with different permissions具有不同权限的 RESTful 端点
【发布时间】:2018-07-30 12:32:50
【问题描述】:

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

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

我应该有类似的端点

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

听起来设计有点不灵活,如果用户可以拥有can_modify_foo_propcan_modify_bar_prop这样的权限呢?

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

【问题讨论】:

    标签: rest api


    【解决方案1】:

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

    /users/1
    /users/2
    ...
    

    可以定义(在适当的 Media-Type 中)返回文档以保存基于当前用户权限的属性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2018-04-22
      • 2011-10-08
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多