我有一堆返回几种数据类型的API。 所有用户都可以使用GET rest API查询所有数据。
一些用户也可以更改数据。设计REST API时,通常的方法是只查询当前用户可以更改的数据,但仍然允许api返回所有数据(用于显示模式)。
进一步说明:
该软件管理项目。所有项目都可以通过api(让我们将其称为GET api / projects)供所有用户(也可以匿名)访问。 用户可以查看他所参与并可以编辑的所有项目的列表。 该api应该返回完全相同的数据,但仅限于他参与的项目。
我应该创建一个附加参数,还是传递一个http标头,或者其他什么?
答案 0 :(得分:0)
对此没有一个万能的答案,因此,我将为您提供一些对某些人有用的建议。
我真的不喜欢创建具有“复杂访问控制”的资源。相反,我希望为不同的访问级别创建不同的资源。
如果您要为部分访问权限的用户返回极限结果,最好创建新的资源来反映这一点。
我认为这也可能有助于思考一个不允许做任何事情的人的抽象角色。这种抽象可能不存在每个属性,但作为业务规则存在于某个地方。