我使用Laravel作为我的PHP框架。它是将index show store ...
函数放入 Controller 的约定。
我有2种类型的用户(管理员和普通用户)。让我们假设有一个Order
(在餐厅中)模型,我想为其 Controller 实现index
函数。
一个用户可以有多个订单。
我需要的是这个功能:
我搜索了,但是什么也找不到(我不知道要搜索什么)。
一旦我按以下方式执行此操作,我就不喜欢它,因为它看起来将两个不同的功能集中在一起:
if ($user->role == admin) {
// fetch all orders
} else if ($user->role == normal_user) {
// just find user orders
}
所以我的问题是实现我想要的最好的方法是什么? 最佳答案
这样的REST API端点通常是允许多个过滤器,排序和分页的搜索。如果是这样,完全可以为过滤器应用不同的默认值,并将过滤器限制为角色。
如果没有管理员角色的用户尝试为其他用户应用用户过滤器,我将自动为缺少的管理员角色应用过滤器user = currentUser,并返回一个禁止的列表。
通过这种方法,您还可以为管理员提供搜索特定用户的要约的功能,并且您只需要一个搜索api即可被 Controller 使用。
关于php - RESTful API基于用户角色的不同响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56805808/