我使用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/

10-12 00:35
查看更多