使用我自己的 Laravel API 时如何遵循“不重复”原则?

2024-04-11

我正在开发一个 Laravel 4 应用程序,它将通过 JSON REST API 和 Web UI 对我的数据集提供相同的 CRUD 操作。看来,为了防止违反 DRY 原则,我的 UI 应该通过将所有请求从 UI 路由回 API 来使用我自己的 API。但我不确定完成这项工作的最佳方法。想必我会有单独的 UI 和 API 控制器,并以某种方式路由请求。或者我应该考虑完全不同的方法?


我实际上也在修改同样的想法,而且它非常简洁。使用 Laravel,您确实能够发出内部请求(有些人可能将其称为 HMVC,但我不会)。以下是内部请求的基础知识。

$request = Request::create('/api/users/1', 'GET');

$response = Route::dispatch($request);

$response现在将包含 API 返回的响应。通常,这将返回一个 JSON 编码的字符串,这对于客户端来说非常有用,但对于内部 API 请求来说就不太好了。您必须在此处扩展一些内容,但基本上的想法是为内部调用返回实际对象,并为外部请求返回格式化的 JSON 响应。你可以利用类似的东西$response->getOriginalContent()来这里就是为了这种事情。

你应该考虑做的是构建某种内部Dispatcher它允许您分派 API 请求并返回原始对象。调度程序还应该处理格式错误的请求或错误的响应,并抛出异常以进行匹配。

这个想法本身是可靠的。但规划 API 是一项艰巨的工作。我建议您写一份完整的所有预期端点列表,并起草几个 API 版本,然后选择最佳的一个。

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

使用我自己的 Laravel API 时如何遵循“不重复”原则? 的相关文章

  • 垃圾邮件打败了我所有的验证码

    我有一个 WordPress 博客 我在上面使用验证码插件的时间最长 因为它有效 最近我收到了大量的垃圾邮件 然后我尝试执行通过 PHP 生成的 将这些随机数添加在一起 但仍然没有成功 我不太确定需要做什么来阻止这些垃圾邮件 但这很烦人 我
  • 将 OAuth WRAP 访问令牌直接保存在客户端计算机上的 cookie 中吗?

    我计划建立一个可以访问 oauth 包装框架的网站 我正在考虑将访问令牌按原样存储在客户端计算机上 我不想在服务器上维护临时令牌等数据库 我应该做吗 或者我应该加密它 首先 为什么他们不使用 OAuth 2 0 您可以将 OAuth 凭据存
  • jersey 2.2:ContainerResponseFilter 和 ContainerRequestFilter 永远不会被执行

    按照泽西岛网站上的入门指南进行操作 我执行了以下构建命令 mvn archetype generate DarchetypeArtifactId jersey quickstart grizzly2 DarchetypeGroupId or
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • file_get_contents 大文件上传

    我正在尝试使用 fsockopen 上传 2GB 以上的大文件 但 file get content 出现以下错误 我无法在内存中存储大文件 我需要分块发送数据 但不知道如何执行此操作 请问有人可以指导我吗 致命错误 允许的内存大小 134
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 这个巨大的正则表达式是如何工作的?

    我最近在我的一个目录中的一个名为的文件中找到了下面的代码doc php 文件功能或链接到文件管理器 做得非常好 基本上 它列出了当前目录中的所有文件 并且允许您更改目录 它可以访问我的所有文件 添加 重命名 信息 删除 我不记得安装过它 我
  • 自定义帖子类型的 WordPress 自定义字段

    过去有几个人出现过这个问题 但他们的问题的解决方案对我来说不起作用 我已经尝试了很多 在 WordPress 中 我创建了 3 种自定义帖子类型 1 代表 视频 新闻 和 音乐 每个内容都发布到自己的页面 我想添加自定义字段 这样我就可以为
  • 在 Laravel 中的编辑表单上获取选定选项

    我的网站订单有一个可编辑的表单 并且有以下字段 User quantity note status 我在此表单中还有其他选项 但只有这些字段对我来说很重要 以便能够获取默认值 例如 我希望能够查看用户默认订购的数量 然后我可以更改它或保留它
  • Zend Framework 中的动态默认模块

    有谁知道在 Zend Framework 中动态设置默认模块并且不会遇到命名空间问题的方法 例如 我想要做的是有一个允许加载的模块表 其中一个设置为默认模块 例如 我可能有 admin blog calendar 作为可以加载的模块 如果我
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • Laravel 登录后重定向回来

    登录后如何重定向返回页面 在 Laravel 5 2 中 认证控制器 protected redirectTo 重定向用户
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • Paypal 将钱从一个帐户转移到另一个帐户

    我知道这个建议如何汇款至任何 PayPal 账户 https stackoverflow com questions 1559808 paypal api send money to any paypal account但到目前为止我所尝试
  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • 通过 Sparkpost 发送 iCal 邀请

    我正在尝试使用 SparkPost 通过电子邮件以附件形式发送日历邀请 但收到电子邮件后邀请不会打开 我使用两个文件 calendarinvite php 来创建邀请 使用 Sendemail php 来发送电子邮件 calendarinv
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia

随机推荐

  • 带 StickyHeader 的 Sliver 内的 TabBarView

    到目前为止 我已经使用 CustomScrollView 和 Sticky Header 制作了这个布局 https i stack imgur com piwya jpg https i stack imgur com piwya jpg
  • 在 OpenCart 3 中禁用模板缓存以进行开发

    我正在 OpenCart 3 中的主题模板中进行更改 由于模板缓存 我每次都必须在 storage cache 目录下清除缓存 在开发过程中频繁工作和预览更改是非常烦人的 请提供一些解决方案 我们如何根据生产和开发环境配置缓存 注 我已经在
  • 检测开始和停止编辑 UITextView

    如何在进入 UITextView 用户点击以编辑它 和离开视图 用户点击以离开它 时调用一些代码 感谢任何帮助 http developer apple com library ios documentation uikit referen
  • 一台机器上有多个 gitolite 用户

    我已经在远程计算机上设置了 gitolite 并从本地配置了它 我不想让我的活动显示为 admin 并创建用户和密钥 noah 为 noah 创建存储库后 我被拒绝访问 我相信 因为我仍然是 管理员 所以我在一台机器上有两个帐户 我该如何切
  • 如何对每个 WCF 调用进行身份验证和授权?

    我有 WPF 客户端使用 IIS 中托管的 WCF 服务 对于身份验证 我正在考虑证书或用户名身份验证 客户端调用 WCF 中的几个方法并传递一些消息 对于 WCF 接到的每个电话 我 想要验证用户身份 要将消息放入数据库 我必须知道调用者
  • 如何自定义NSToolbar的上下文菜单?

    我需要从右键单击上下文菜单中删除一些项目 但工具栏不包含用于访问 toolbarView 的公共 API 是否可以在不使用私有 API 的情况下自定义菜单 您可以在创建工具栏时访问和修改工具栏上下文菜单 即在 awakeFromNib NS
  • 支持 DB2 和 IBM Cloud php 应用程序的 github php buildpack

    我们在 IBM Cloud 上有一个连接到 DB2 实例 也在 IBM Cloud 上 的 PHP 应用程序 该应用程序已经完美运行了 2 年 截至 9 月 16 日 我们使用构建包 https github com ibmdb php b
  • RevealViewController() 总是返回 nil

    我遇到了一些麻烦revealViewController在 Xcode 7 2 和 iOS 9 2 中 我的应用程序从嵌入导航控制器中的视图控制器开始 以执行登录 登录后 或者如果存在登录令牌 我会使用以下代码跳转到嵌入导航控制器中的另一个
  • 有哪些不同类型的封装?

    有哪些不同类型的封装 我是否认为这基本上指的是核心面向对象概念 例如抽象 多态性和继承 我对封装的理解是 它是一种隐藏数据 功能的方法 但我从未真正考虑过多态性或继承是封装的一种形式 尽管我可以看到多态性如何被视为封装 因为它可以隐藏您的对
  • 如何在 protobuf-csharp-port 和 protobuf-net 之间进行选择

    我最近不得不寻找最初由 Google 开发的 Protocol Buffers 库的 C 移植 你猜怎么着 我在这里发现了两个由两个非常知名的人拥有的项目 protobuf csharp 端口 http code google com p
  • 比较两个数据库的结构?

    我想问是否可以比较两个巨大数据库的完整数据库结构 我们有两个数据库 一个是开发数据库 另一个是生产数据库 有时我会忘记在发布部分代码之前对生产数据库进行更改 这会导致生产数据库不具有相同的结构 因此如果我们发布某些内容 就会出现一些错误 有
  • 如何将我的 React-App 部署到 github 用户页面

    我一整天都在努力将我的 React 应用程序部署到 Github 用户页面 例如https mygitname github io http 而不是 Github 页面 例如https mygitname github com mysite
  • 从动态复选框列表中获取值

    See my html
  • 错误 TypeError:无法读取 Angular 7 拖放中未定义的属性“长度”

    我只是想在 Angular 7 的帮助下创建拖放组件DragDropModule from angular cdk drag drop 但我总是收到如下错误 HomeComponent html 14 ERROR TypeError Can
  • 如何创建带有括号和参数的自定义 jquery 函数

    我知道我的问题需要更多澄清 所以让我解释一下 当我访问 fn extend 的 jquery api 文档时 我个人对创建如下所示的自定义 jquery 函数是多么容易感到震惊 input type checkbox check 链接在这里
  • 如何使用react.js上传Excel工作表文件并将数据显示到表格

    我是 React JS 的新手 我正在尝试使用react js上传Excel工作表文件并将数据显示到表格中 我有 链接中的部分参考 但并不完整 请帮忙解决一下 从 Excel 导入数据并在 React 组件中显示 https stackov
  • MVC 3 应用程序中的自定义 Http 处理程序

    我正在使用 Http 处理程序来本地化应用程序中使用的 javascript 文件 看 在 ASP NET 中本地化 JavaScript 文件中的文本 http madskristensen net post Localize text
  • Gulp - 处理多个主题和文件夹

    我正在努力创造一个终极gulpfile我们可以在我们的大型网站之一上使用它 一个具有多个主题 具体取决于您所在网站的部分 我试图让它只运行它需要运行的进程 而不是重新编译所有内容 让我准确地布局我想要实现的目标 文件夹结构 src mast
  • C# 反射:获取解决方案中的“所有”活动程序集?

    这是我的问题 我有 2 个项目 一个 常见 项目 其行为类似于具有各种支持代码的库 以及在许多调用中使用所述项目的实际程序 我们将这些项目称为 Common 和 Program 它们都在同一个解决方案中 在 Common 中 我有一个用于常
  • 使用我自己的 Laravel API 时如何遵循“不重复”原则?

    我正在开发一个 Laravel 4 应用程序 它将通过 JSON REST API 和 Web UI 对我的数据集提供相同的 CRUD 操作 看来 为了防止违反 DRY 原则 我的 UI 应该通过将所有请求从 UI 路由回 API 来使用我