api - 成员和管理员用户的 API 端点
问题描述
我在 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]
确保有一些经过身份验证的用户,然后将利用资源级授权仅返回属于该用户的项目。
推荐阅读
- entity-framework - 实体框架和 Linq
- python - C中cython纯python模式的使用
- typescript - 我不能替换所有打字稿
- moodle - 将矩阵方程的解代入最大值矩阵乘积
- azure - .NET Core Web API 在部署到 Azure 后无法正常工作
- kubernetes - kubectl 事件从何而来?我如何导出这些?
- julia - 使用 Julia 在 Atom 上使用 LightGraphs 时出错
- python - 无法从主文件访问属性文件中的 Python 字典
- php - 在其他刀片中包含导航栏刀片使“Laravel”中的“CSS”冲突!
- javascript - 一个函数正在改变错误的变量值