我有一个API中的以下资源:
公司>项目> ProjectUser>用户
资源的关系如下:
我定义的API端点来获得项目:
"/projects" > Get all projects that authenticated user can access
"/companies/{companyId}/projects" > Get projects with `companyId` that authenticated user can access
我需要3个端点只访问通过的管理员用户:
UserId
用户的所有项目;companyId
的用户UserId
项目。5个端点应该怎样成为?
在像这样的情况下,特定于用户的资源通常前缀类似my
,me
,user
等。例如:/my/projects
和/my/companies/{companyId}/projects
。这有助于简单地需要身份验证,但不是一般的请求资源的筛选,比如你的管理情况进行区分。对于管理员查询,你会打/projects
和/companies/{companyId}/projects
端点。然后,您可以保护这些端点的东西,如[Authorize(Roles = "Admin")]
并假定用户是管理员,他们将收到的所有项目。而my
前缀的路由表将只要求[Authorize]
,以确保有一些身份验证的用户,然后将利用资源级授权归还属于该用户只项目。