【问题标题】:REST API: Design routes based on rolesREST API:基于角色设计路由
【发布时间】:2018-11-15 12:34:25
【问题描述】:

我目前正在为我的系统上的用户创建 CRUD,有两种用户(父用户和子用户)。 父用户可以获取/更新/删除他孩子的权限,所以我想在我的 API 上创建以下端点:

GET /parents/{parentId}/childs/{childId}/permissions
PUT /parents/{parentId}/childs/{childId}/permissions
删除 /parents/{parentId}/childs/{childId}/permissions/{permissionId}

但是有第三种类型的用户(管理员)可以获取/更新/删除他想要的任何用户的权限,所以我正在考虑创建另一组端点:

GET /users/{userId}/permissions
PUT /users/{userId}/permissions
删除 /users/{userId}/permissions/{permissionId}

现在这种方法的问题是我会以很多端点做同样的事情结束,所以我的问题是:当有不同的角色时,休息端点有一个最佳实践,或者有多个端点可以吗执行相同的操作?

【问题讨论】:

    标签: rest api restful-architecture


    【解决方案1】:

    我可能会组织它,以便您只有管理端点,并使用角色来确定哪些操作是有效的。例如,如果我们正在查看权限,则父母会发出 /user/{userid}/permissions/{permissionId} ,其中用户 ID 和权限 ID 对应于他们孩子的。如果是,则调用执行并返回 200。但是,如果他们为不是他们孩子的人发出该命令,则返回未经授权。

    对于权限,我会使用一种机制,如 java web 令牌,每个请求都会传递给端点。

    【讨论】:

      猜你喜欢
      • 2015-01-30
      • 1970-01-01
      • 2015-11-10
      • 2016-06-12
      • 2012-01-01
      • 1970-01-01
      • 2016-12-10
      • 2015-07-17
      • 1970-01-01
      相关资源
      最近更新 更多