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" } 第一个端点不是问题,只有管理员才能看到用户列表。 但是第二个是我想要用来呈现概要文件页面的,它需要对所有用户都可用

我正在使用restful 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)
另一方面,我也在考虑根据状态显示/隐藏资源的最佳方式。 假设我有状态为“待批准”、“可用”、“已删除”的书籍

如果我是管理员用户,我需要查看所有帖子,但如果我是普通用户,我应该只能访问“可用”中的帖子 我是否应该使用相同的端点并根据作用域在其中添加逻辑?或者我应该创建一个像/public/books这样的新版本? 如果我使用同一本书,如果该书仅针对普通USREE有待批准,我是否应该返回404

这两个问题在某些方面是相似的,因为它们都与用户权限有关

如果你能帮我,那就太好了。我发现的例子非常简单

谢谢

[GET] /books/1

{
    id: 1,
    content: "...",
    status: "removed"
}