RESTful API 根据用户角色不同的响应

2024-03-30

我使用 Laravel 作为我的 PHP 框架。这是一个约定index show store ...控制器中的功能。

我有两种类型的用户(管理员和普通用户)。让我们假设有一个Order(在餐厅)模型,我想实施index其控制器的功能。 一位用户可以有多个订单。

我需要的是这个功能:

  • 如果管理员调用此 API:返回所有订单
  • 如果普通用户调用此API:仅返回该用户拥有的订单

我搜索了,但找不到任何东西(老实说,我不知道要搜索什么)。

一旦我按照下面的方式做了我不喜欢的事情,因为它看起来两个不同的功能聚集在一个中:

if ($user->role == admin) {
       // fetch all orders
   } else if ($user->role == normal_user) {
       // just find user orders
     }

所以我的问题是实现我想要的最好方法是什么?


这样的 REST API 端点通常是允许多个过滤器、排序和分页的搜索。如果是这样,那么为过滤器应用不同的默认值并将过滤器限制为角色是完全可以的。

我会自动应用过滤器 user=currentUser 来缺少管理员角色,并在没有管理员角色的用户尝试为其他用户应用用户过滤器时返回禁止。

通过这种方法,您还可以为管理员提供搜索特定用户的报价的功能,并且您只需要控制器使用一个搜索 api。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RESTful API 根据用户角色不同的响应 的相关文章

  • 3rd party API 返回 500 错误,我的 API 应该返回什么代码

    我在基于 ZF2 Zend Framework 2 的框架中编写了一个 API 称为 Apigility 我的服务可以查询第 3 方 API 偶尔 我会收到 500 错误消息 要么是由于令牌过期 要么是其他原因 我的 API 应如何响应我的
  • PHP 裁剪图像以固定宽度和高度而不丢失尺寸比例

    我希望创建尺寸为 100 像素 x 100 像素的缩略图 我看过很多解释这些方法的文章 但如果要保持尺寸比 大多数文章最终都会有宽度 高度 例如 我有一个 450 像素 x 350 像素的图像 我想裁剪为 100px x 100px 如果我
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • PHP设置全局环境变量的方法

    我已阅读问题 答案here https stackoverflow com questions 13568191 how to get system environment variables into php while running
  • 是否存在可处理 PRC/.mobi 文件的 PHP 库?

    我正在写一个WordPress 插件 http github com chrisclarke eBook Export Plugin for WordPress以大多数主要电子书格式从选定类别创建电子书 我想支持 MobiPocket 因为
  • 如何在自定义组件中使用 Vue.js 插件?

    我需要输出一个表格及其内容 可以通过 Ajax 进行更新 所以我打算使用vue tables 2 https github com matfish2 vue tables 2 https github com matfish2 vue ta
  • 如何在codeigniter中插入具有多个单选名称的单选按钮值?

    我正在尝试使用 codeigniter 进行在线测验 其中有一个针对某些主题的动态测验 用户可以在每个问题中添加问题和多项选择答案 我如何获得每个问题的每个多项选择答案中每个答案的值 p p
  • yii2 无线电内联 Html 帮助器

    我在 yii2 中有这个 radioList Html radioList abc null new class gt form control input sm 它生成这个 div class radio 但我想要 div class r
  • 多维数组内的移动

    我有一个用表格显示的数组 如何使用用户输入进行移动 目前 0 被分配给每个数组 但我计划为该数组分配其他值 我的问题是 如何使用用户输入在数组内向上 向下 向右 向左移动和对角移动 Array 0 gt Array 0 gt 0 1 gt
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • 使用 OpenSSL 在 PHP 中进行 AES 加密/在 Node.js 中进行解密

    我正在使用 PHP 和 Nodejs 使用 OpenSSL 进行对称加密 PHP 使用 OpenSSL 库 Node js 解密基于实现的加密 问题是 Node js 中的解密文本只是部分正确 PHP 加密函数 function encry
  • 如何将 WordPress 类别选择限制为只有一个?

    我有一个自定义帖子类型和一个自定义分类设置 非常标准的东西 但是 我想知道如何限制我的客户在每个帖子中选择多个分类类别 我不介意他们能够创建和删除分类类型 但我不希望他们选择多个分类类型 因为这些是复选框 所以它们可以 也许单选按钮可以工作
  • 为什么将 Ubuntu 升级到 22.04 后 phpMyAdmin 停止工作?

    刚刚升级到 Ubuntu 22 04 现在我的 phpmyadmin 无法加载 我收到以下错误 解析错误 语法错误 usr share php Symfony Component DependencyInjection ContainerB
  • array_merge 更改键

    我得到以下数组 arr array 6 gt Somedata 7 gt Somedata1 8 gt Somedata2 问题是 当我使用array merge array Select the data arr 它确实将数组键更改为 A
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 添加 current_page_item 类

    我正在研究 WordPress 设计 我想创建一个自定义菜单 items wp get nav menu items Menu array order gt ASC orderby gt menu order post type gt na
  • Paypal IPN 发送“待处理”并以“多币种”为理由?

    我正在使用 Paypal IPN 从我的网站收款 该网站目前仅处于开发阶段 因此我建立了一个沙盒网站进行测试 并且我已经通过在英国注册的测试帐户非常成功地以英镑货币 我的居住国货币 进行付款 但是 我希望该网站能够检测访问者的原籍国并允许他
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de

随机推荐

  • 用于测试是否正在构建应用程序扩展的预处理器宏是什么?

    这个问题纯粹基于公开发布的有关 iOS 中应用程序扩展引入的文档 随着引入应用程序扩展 https developer apple com library prerelease ios documentation General Conce
  • AppCompat v7:21 拆分操作栏损坏?

    我目前正在开发一个应用程序 其中使用经过大量修改的拆分操作栏 以下是应用程序当前状态的链接 您会注意到顶部有一个透明的操作栏 其中有一个自定义视图 底部有一个拆分在一起的操作栏 底部视图实际上是一个单独的操作项 其中包含一个自定义视图 并且
  • 如何设置gridview行颜色,我尝试过,但它显示强制转换无效?

    protected void gvcolors RowDataBound object sender GridViewRowEventArgs e if e Row RowType DataControlRowType DataRow in
  • 如何添加UIActionSheet按钮复选标记?

    我想知道如何以最简单的方式在 actionSheet 按钮右侧添加复选标记 下面是截图Podcasts app 请注意 该解决方案可能会在将来的 iOS 更新中崩溃 我是 访问未记录的私有 API 这样的解决方案非常脆弱 请参阅下面的评论
  • 如何将密码文本与 bcrypt 哈希值进行比较?

    我的应用程序中有一个用例 应该阻止用户在重置密码时选择最近 3 个密码之一 我使用 Angular 作为前端 使用 Spring Boot 作为后端 在我的场景中 用户密码存储为 bcrypt 哈希 如何将用户输入的密码与最近存储的 3 个
  • 如何替换R数据框中多列中的多个值?

    假设我有以下数据框 真正的数据框是 10 个 labelx 列 id lt c 1 2 3 4 5 6 7 8 label1 lt c apple shoe banana hat dog radio tree pie label2 lt c
  • 当焦点从角度输入中移出时触发验证?

    当我们不断在文本框中输入内容时 电子邮件验证将被触发 我希望当用户将焦点移出文本框时触发此验证 下面是我的代码
  • 有没有一种好的方法可以在Linux中禁止屏幕保护程序?

    我正在寻找一种体面的 不蹩脚的方式来抑制 xscreensaver kscreensaver 或 gnome screensaver 无论哪一个可能正在运行 最好以与屏幕保护程序无关的方式 并且它绝对必须执行fast 我读过xscreens
  • 如何使用ABAddressBook删除iPhone通讯录中的记录?

    我正在学习地址簿框架 然后我想从iPhone通讯录中删除记录 我检查了文档并发现了一个名为ABAddressBookRemoveRecord 但我找不到删除记录的方法 比如用户选择一条记录 然后点击删除按钮 然后该记录就会被删除 到目前为止
  • 安卓 |内容观察者 |内容 URI 不包含资源 ID

    我正在尝试检测 Android 应用程序上的屏幕截图 我使用 contentObserver 来检测媒体目录中的更改 而不是使用 FileObserver 因为已知问题 https code google com p android iss
  • 通过 Internet 发送 UDP 数据包

    我正在尝试了解 P2P 去中心化网络的一些细节 我的问题如下 假设我有两台名为 comp1 和 comp2 的机器 现在 comp1 设置在我的家庭网络中的路由器后面 comp2 位于我的办公室中 也位于路由器后面 我是否可以像这样在 In
  • WriteFile 返回错误代码 87

    我正在开发一个写入 HID 设备的程序 但收到错误 87 WriteFile 函数参数无效 我从 Jan Axelson 的 USB Complete 获得了这些功能 所以我不确定为什么会收到错误 我用它来查找我的设备 private vo
  • ItemsSource 绑定不更新值

    我需要列出物品清单 我将用户集合绑定到列表框 一切都运行良好 但列表框中的项目不会实时更新 它们根本不会通过此绑定进行更新 因此 当我从列表中删除任何用户时 即使正确更改了列表框的源 列表框也不会更新 源位于数据视图模型中的路径 DataV
  • 禁止 Ruby 中的特定警告

    我看过很多帖子提供 W0标记作为此问题的答案 但我不想抑制所有警告 而只是抑制特定值的警告 我正在 Ruby 1 8 7 上运行一个非 Rails 应用程序 尽管它使用 ActiveRecord 我想保留除以下弃用警告之外的所有警告 Obj
  • Android 辅助功能对讲来说出片段的标题

    有没有办法让 Android 可访问性中的对讲功能在片段事务后说些什么 我基本上希望对讲在切换后说出片段的名称 标题 这些标题设置为操作栏的标题 可以在那里访问吗 用户可以将手指移动到操作栏中的文本顶部来了解他们所在的屏幕 但除非他们已经熟
  • 应用程序池回收如何影响 ASP Net 会话状态?

    我知道当应用程序池被回收时 会启动一个新的工作进程 但我对在此过程中如何处理过期和有效会话感到困惑 哪些传递给新的工作进程线程 哪些被消除 它将做什么 用户A的会话已过期 用户B的会话有效 回收后 当用户A和用户B请求时 他们的会话状态会是
  • Maven 属性加载顺序

    我知道 Maven 属性可以在不同的位置定义 m2 settings xml在本地机器上
  • 如果我只知道文件名的一部分,如何打开文件?

    我需要打开一个我不知道完整文件名的文件 我知道文件名是这样的 filename esy 我确信该文件在给定目录中只出现一次 filename esy已经是一个 shell Ready 通配符 如果情况总是如此 您可以简单地 const SO
  • Skylake 中干净缓存行的写回?

    我观察到 Skylake SP 在真实硬件上对干净的缓存行进行写回 Leeor 对这篇文章的回答对于 Intel Core i3 i7 数据从缓存集中逐出后的去向 https stackoverflow com questions 1941
  • RESTful API 根据用户角色不同的响应

    我使用 Laravel 作为我的 PHP 框架 这是一个约定index show store 控制器中的功能 我有两种类型的用户 管理员和普通用户 让我们假设有一个Order 在餐厅 模型 我想实施index其控制器的功能 一位用户可以有多