Web 应用程序和 API 在同一个 Laravel 项目中?

2024-01-08

我正在尝试找出构建我即将开始的新项目的最佳方法。

我们目前有一个网络应用程序和一个移动应用程序,它们都通过 API 提供数据。目前,Web 应用程序是在安装 CodeIgniter 时完成的,而 API 是在单独安装 CodeIgniter 时完成的。对于数据,Web 应用程序调用 API,然后处理返回的数据。

此时,看起来我们正在为 Web 应用程序切换到 Laravel,我认为这可能是重做 API 的好机会,因为我们的一些规则已经改变,可能是时候完全摆脱 CodeIgniter 了。

现在回答这个问题:我读过一些资料,人们将他们的 Web 应用程序和 API 构建到同一个 Laravel 项目中,并且仅使用路由来分别控制 API 和 Web 应用程序的映射。虽然这看起来是一个有趣的想法,但它让我想知道这是否是最佳实践,因为我想知道大量的 API 流量是否会减慢 Web 应用程序的速度,反之亦然。

问题:

最佳实践是让 api 在自己的项目中解耦还是可以在同一个项目中进行?

跟进问题

Web应用通过API进行调用,如果不解耦的话,是不是就只是调用API路由呢?还是去上课比较好?


在我看来你有两个选择:

  • 仅使用 Laravel 构建 API (Response::json无处不在),然后使用 Angular 或 jQuery 等 JS 框架构建 Web 应用程序。 Web 应用程序和移动应用程序都可以向 Laravel 应用程序发出 AJAX 请求,并且 JS 框架将处理显示它。这将是“不在同一个地方构建 api + web 应用程序”的解决方案。您可以在任何您想要的地方构建 Web 应用程序,或者在 Laravel 应用程序本身内部构建。

    API 很容易维护,您甚至可以合并 Web 应用程序和移动应用程序,因为它们都会执行相同的操作(除非您实际上希望它们不同)。此外,它更容易扩展,因为接口在任何 API 消费者应用程序中都保持不变。

    这会有所帮助a lot: https://laracasts.com/series/incremental-api-development https://laracasts.com/series/incremental-api-development

  • 在同一个地方构建 API 和 Web 应用程序,需要将您的应用程序分为 2 部分:一部分响应 AJAX 请求并返回 JSON,另一部分将以正常方式响应,返回 php 视图等等。

    这意味着大量的额外工作和双倍的视图量,因为您必须构建由移动应用程序处理的视图和由 Laravel 本身处理的视图。有很多内容需要涵盖和维护(和测试)。

这取决于您正在构建什么类型的项目。是SPA吗?

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

Web 应用程序和 API 在同一个 Laravel 项目中? 的相关文章

随机推荐

  • Jersey / ServletContext 和启动时加载资源

    我是 Java Web 开发领域的新手 我正在开发一个网络服务 我选择了 REST Jersey for it 我想在服务启动时初始化一些东西并保留它们 贯穿整个服务生命周期 第一个问题 构造函数是JerseyServlet 是做这件事的好
  • 解析 Facebook logInInBackgroundWithReadPermissions (Swift)

    我已成功设置 Parse 1 7 1 SDK 和 Facebook v4 SDK 设置桥接头文件和 AppDelegate swift 现在在我的 ViewController 中 我正在尝试创建 Facebook 登录 并且我正在尝试使用
  • read.csv 在 R 中警告“EOF 在引用的字符串中”,但在 EXCEL 中成功读取

    我尝试读取从下载的 csv 文件here https d396qusza40orc cloudfront net repdata 2Fdata 2FStormData csv bz2 我用下面的代码阅读 storm data read cs
  • 网络爬虫的典型礼貌因素?

    网络爬虫的典型礼貌因素是什么 除了始终遵守robot txt 禁止 和非标准 抓取延迟 但是 如果站点没有指定显式的抓取延迟 则默认值应该设置为多少 我们使用的算法是 If we are blocked by robots txt Make
  • RazorEngine 中的 using-Statement(没有 MVC 中的 HtmlHelper)

    我使用的是 RazorEngine 没有 MVC 框架 这意味着我没有用于创建模板的 HtmlHelper 没关系 反正我不需要它的任何方法 但我需要创建自己的方法 例如 BeginForm 现在这些都是用 HtmlHelper ViewC
  • 在 Chrome 上将 drawImage 与 Canvas 结合使用非常慢

    我一直在尝试使用drawImage 将SVG 文件的大量实例绘制到画布上 通过使用 SVG 作为源创建单个图像元素 然后对画布上的每个实例使用 drawImage 我希望即使有大量实例也可以非常快速地在画布中生成合成图像 就性能而言 这在
  • nt!KeWaitForSingleObject 不带参数

    我目前正在尝试调试系统死锁 但我很难理解这一点 Child SP RetAddr Args to Child Call Site fffff880 035cb760 fffff800 02ecef72 00000000 00000002 f
  • C++ SQL数据库比较[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 合并特定日期范围内的 Pandas DataFrame

    我有 2 个数据框 一个为Invoice Data另一个用于Promotion Dates Invoice Data数据框 LocationNo InvoiceDate InvoiceAmount A 01 Jul 20 79 B 01 J
  • 在 Firefox 中的新选项卡中打开链接

    我正在开发一个 Firefox 扩展 如何才能在新标签页中打开网页上的所有链接 这通常是 Firefox 中处理新链接的可配置选项 因此它们可能会用它覆盖您的扩展 然而 The code a href http www example co
  • Django自递归外键过滤器查询所有子项

    我有一个带有自引用外键关系的模型 class Person TimeStampedModel name models CharField max length 32 parent models ForeignKey self null Tr
  • ios UIImage 超出 UIImageView 边框

    这里黑色边框显示 UIImageView 的父 UIView 红色边框显示 UIImageView 我正在从服务器下载图像 但图像超出了 UIImageView 区域 如图所示 我正在以编程方式进行此操作 任何帮助将不胜感激 我在下面添加代
  • C# FTP,如何检查路径是文件还是目录?

    我有一个包含一些 FTP 路径的数组 如下所示 ftp ip 目录 目录1 ftp ip 目录 目录2 ftp ip 目录 文件 txt ftp ip 目录 directory3 ftp ip 目录 another file csv 如何确
  • 标准 C 中是否有推荐的整数类型来存储函数指针

    C99标准有uintptr t 一个推荐的整数类型 用于将数据指针 指向对象的指针 转换为 但我没有找到等效的整数类型来存储函数指针 是我忽略了吗 特定的编译器可以定义这样的类型 即使它不在标准中 但编译器更有可能声明函数指针可以存储在 例
  • 圆形鱼眼图像扭曲为平面图像

    截至 2015 年 11 月 12 日更新 我将 PanoTools 插件与 Photoshop 和 Hugin 一起使用 并使用了所有这些参数 最终我找到了满足我最低要求的投影 HFOV 和图像输出尺寸参数 参数 Processed Ou
  • ActiveX (COM) 控件在被其父控件关闭时进行清理的正确方法是什么?

    我遇到的问题是 我的 net 控件在包装以供 ActiveX 使用时无法正确清理 当我尝试关闭 SDK 的测试容器应用程序 TstCon32 exe 时 默认行为会使它作为无 GUI 进程运行 我最初通过谷歌找到的解决方法是覆盖 WndPr
  • 在 Ruby 中反转哈希值

    我如何反转哈希中的元素 保持相同的值和键 但反转它们在哈希中的顺序 Like so 4 gt happiness 10 gt cool lala gt 54 1 gt spider 并将其转换为 1 gt spider lala gt 54
  • PHP 在文本区域中回显时显示 \r\n 字符

    我的数据正在读取从数据库 文本 保存的数据 我的问题是它也有这些字符 r n 我怎样才能阻止这些字符的显示 在将数据库文本放入文本区域之前 调用 nl2br 函数作为参数 r n 字符是 ASCII 不可见 字符 编码回车和换行 http
  • Android 主屏幕小部件(图标、标签 - 样式)

    我正在尝试创建一个可以放置在 Android 主屏幕上的图标 小部件 1 个单元 x 1 个单元 该小部件的外观和行为与 Android 中的其他标准快捷方式完全相同 它将有一个图标 在该标签下有一个标签 可以使用轨迹球 可突出显示 选择它
  • Web 应用程序和 API 在同一个 Laravel 项目中?

    我正在尝试找出构建我即将开始的新项目的最佳方法 我们目前有一个网络应用程序和一个移动应用程序 它们都通过 API 提供数据 目前 Web 应用程序是在安装 CodeIgniter 时完成的 而 API 是在单独安装 CodeIgniter