我目前正在为我的系统上的用户创建一个CRUD,有两种用户(父用户和子用户)。 父用户可以获取/更新/删除其孩子的权限,因此我想在我的API上创建以下端点:
GET / parents / {parentId} / childs / {childId} / permissions
PUT / parents / {parentId} / childs / {childId} / permissions
DELETE / parents / {parentId} / childs / {childId} / permissions / {permissionId}
但是有第三种类型的用户(Admin)可以获取/更新/删除他想要的任何用户的权限,所以我在考虑创建另一组端点:
GET / users / {userId} /权限
PUT / users / {userId} / permissions
DELETE / users / {userId} / permissions / {permissionId}
现在这种方法的问题在于我会以很多端点做同样的事情,所以我的问题是:当有不同的角色时,有一个休息端点的最佳实践,或者有多个端点是没关系的执行相同的操作?
答案 0 :(得分:1)
我可能会组织它,以便您只有管理端点,并使用角色来确定哪些操作有效。例如,如果我们查看权限,则父级将发出/ user / {userid} / permissions / {permissionId},其中userid和permission id对应于其子级的id。如果是,则调用执行并返回200.但是,如果他们为不是他们孩子的人发出该命令,则返回未授权。
对于权限,我会使用像每个请求传递到端点的java web令牌这样的机制。