【发布时间】:2019-02-11 18:11:11
【问题描述】:
我有以下实体:
public class Company {
public Int32 CompanyId { get; set; }
public String Name { get; set; }
}
public class Project {
public Int32 ProjectId { get; set; }
public String Name { get; set; }
public virtual Company { get; set; }
}
public class ProjectUser {
public Int32 UserId { get; set; }
public String ProjectId { get; set; }
}
public class User {
public Int32 UserId { get; set; }
public String Name { get; set; }
}
我需要创建一个 Api 端点来获取公司的项目:
companies/{companyId}/projects
此 url 有意义,但返回项目应限于:
-
项目,在提供的公司中,与当前经过身份验证的用户相关联(ProjectUser);
或
如果当前经过身份验证的用户是系统管理员,则在提供的公司中的所有项目。
问题
所以这个请求依赖于经过身份验证的用户...
我应该在请求中发送 UserId,然后在 API 中检查其权限吗?
如果是,网址将如何,例如companies/{companyId}/projects,成为?
或者我应该简单地获取经过身份验证的用户并在 API 中检查其权限,而不在请求中发送 UserId?
【问题讨论】:
标签: api asp.net-core-webapi api-design