RESTful API::具有不同用户权限的资源的可见性
我正在使用restful api在移动和网站中使用,但我找不到文档来理解如何正确使用具有不同用户权限的资源 例如:我有端点RESTful API::具有不同用户权限的资源的可见性,rest,permissions,api-design,Rest,Permissions,Api Design,我正在使用restful api在移动和网站中使用,但我找不到文档来理解如何正确使用具有不同用户权限的资源 例如:我有端点 [GET] /users (scope: admin) [GET] /users/:id (scope: admin/user) { id: 1, username: "test", email: "test@mail.com" } 第一个端点不是问题,只有管理员才能看到用户列表。 但是第二个是我想要用来呈现概要文件页面的,它需要对所有用户都可用
[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)
另一方面,我也在考虑根据状态显示/隐藏资源的最佳方式。
假设我有状态为“待批准”、“可用”、“已删除”的书籍
如果我是管理员用户,我需要查看所有帖子,但如果我是普通用户,我应该只能访问“可用”中的帖子
我是否应该使用相同的端点并根据作用域在其中添加逻辑?或者我应该创建一个像/public/books这样的新版本?
如果我使用同一本书,如果该书仅针对普通USREE有待批准,我是否应该返回404
这两个问题在某些方面是相似的,因为它们都与用户权限有关
如果你能帮我,那就太好了。我发现的例子非常简单
谢谢
[GET] /books/1
{
id: 1,
content: "...",
status: "removed"
}