端点是否应返回用户有权或禁止的记录

时间:2018-09-17 07:14:25

标签: rest api-design

在我的用户拥有自己创建的实体的情况下,但是他们可以对一个实体类型拥有多个权限,例如:

  • 读取我的实体-访问拥有的实体
  • 所有实体-访问所有实体

针对不同实体的多个端点,例如 task request ,都具有自己的一组端点和权限

有一个REST端点可以返回这些实体的集合,并且它具有一个employeeId过滤器,但是它是可选的

GET /entities/?employeeId=X&otherfilters=Y

每个用户在系统中都有一个EmployeeId。

如果用户仅具有“只读我的实体”权限并且未指定employeeId,我会看到两个处理方法:

  1. 只退还拥有的实体
  2. 禁止返回HTTP 403或类似内容,并显示一条消息,提示您需要指定employeeId

第二种选择对我来说似乎更好

我知道这可能是一个自以为是的问题,但是

  1. 是否有最佳实践来解决这个问题?
  2. 有哪些更好的选择?
  3. 这些方法的利弊是什么?

1 个答案:

答案 0 :(得分:0)

如果端点具有可选字段employeeId,则应返回其自己的实体。

相关问题