假设我们有两种用户,管理员和标准用户。通过用户权限筛选RESTful API中的资源的最佳方式是什么?
我们有一个名为post
的资源。对于GET方法,我希望管理员查看所有帖子,但标准用户只能查看post.created_by={currentUserID}
的帖子。
现在我有三个选项:
使用
/api/post
和/api/mypost
。上面是我可以很容易地控制返回的结果,并根据用户范围分配不同的权限。缺点是我会重复这些代码和文档。使用
/api/post
两种,而对于标准的用户,如果没有?createdBy={id}
它则拒绝该请求。对于两者都使用
/api/post
,但该方法的行为会因认证而异。对于标准用户,返回的列表总是被过滤。对于/api/post/{id}
,它将为不属于用户的帖子返回HTTP 403。
我应该选择哪一个?