我正在使用一个宁静的api来在移动设备和网站中使用,但是我找不到文档来了解使用具有不同用户权限的资源的正确方法
例如:我有端点
[GET] /users (scope: admin)
[GET] /users/:id (scope: admin/user)
{
id: 1,
username: "test",
email: "test@mail.com"
}
第一个端点不是问题,只有管理员才能看到用户列表。 但是第二个是我要用来渲染个人资料页面的页面,它需要对所有用户可用。还将用于管理员用户进行审核。
该电子邮件对管理员用户很有用,但对于普通用户,不应包含在json中。 我应该在同一端点上添加逻辑还是创建一个新的/ profile等文件?
[GET] /users (scope: admin)
[GET] /users/:id (scope: admin)
[GET] /profile/:id (scope: user)
另一方面,我也在考虑根据状态显示/隐藏资源的最佳方法是什么。 假设我有状态为“待批准”,“可用”,“已删除”的图书。
[GET] /books/1
{
id: 1,
content: "...",
status: "removed"
}
如果我是管理员用户,则需要查看所有帖子,但如果我是普通用户,则只能访问“可用”中的帖子。 是否应该使用相同的端点并根据范围在内部添加逻辑?还是应该创建一个像/ public / books这样的新书? 如果我使用的是同一本书,那么如果该书仅适用于普通用户,我是否应该返回404?
这两个问题在某种程度上都是相似的,因为两者都与用户权限有关。
如果您能帮助我的话,那会很棒。我发现的示例非常简单。
谢谢!