API端点会员和管理员用户

问题描述 投票:-1回答:1

我有一个API中的以下资源:

公司>项目> ProjectUser>用户

资源的关系如下:

  1. 一个公司有很多项目;
  2. ProjectUser定义可访问项目的用户;

我定义的API端点来获得项目:

"/projects" > Get all projects that authenticated user can access        

"/companies/{companyId}/projects" > Get projects with `companyId` that authenticated user can access

我需要3个端点只访问通过的管理员用户:

  1. 获取所有用户的所有项目
  2. 获取与给定UserId用户的所有项目;
  3. 获取与给定companyId的用户UserId项目。

5个端点应该怎样成为?

api asp.net-core-webapi api-design
1个回答
0
投票

在像这样的情况下,特定于用户的资源通常前缀类似mymeuser等。例如:/my/projects/my/companies/{companyId}/projects。这有助于简单地需要身份验证,但不是一般的请求资源的筛选,比如你的管理情况进行区分。对于管理员查询,你会打/projects/companies/{companyId}/projects端点。然后,您可以保护这些端点的东西,如[Authorize(Roles = "Admin")]并假定用户是管理员,他们将收到的所有项目。而my前缀的路由表将只要求[Authorize],以确保有一些身份验证的用户,然后将利用资源级授权归还属于该用户只项目。

© www.soinside.com 2019 - 2024. All rights reserved.