通过Laravel构建RESTful应用程序的传统方式是什么?

时间:2017-03-03 09:57:02

标签: laravel rest api reactjs vue.js

我将通过Laravel和客户端框架构建我的第一个REST应用程序,我还不确定(可能是React或Vue.js)。

我做了一些关于如何构建我的应用程序的研究,不幸的是它让我更加困惑。

我得出的结论是,我可以通过两种方式构建我的应用程序:

  • 在同一个项目中构建应用。但是,没有Laravel Blade
  • 将应用程序分为2个项目(正面和背面)。

一方面,在同一个项目上构建应用程序的优点:

另一方面,构建应用程序的专业人员从前到后分开:

  • 每一方都有自己的责任,可以轻松重构。
  • 正如我从朋友那里听到的那样,它更方便(即使对我来说这听起来太复杂了)。

我想知道当Laravel成为其中一部分时,构建RESTful应用程序的最流行方式是什么。我还提到了另一种方式吗?

3 个答案:

答案 0 :(得分:3)

就个人而言,

我喜欢将它们分开,因为它更容易维护。是的,您必须跟踪2个不同的项目/文件夹/存储库,但它们是同一块蛋糕的一部分。

在Laravel中支持API非常简单易行。我假设你已经知道如何做到这一点。你担心失去Laravel Mix提供的优势,但相信我你什么都不会失去。

由于您偏好使用Angular,因此只需克隆任何种子项目存储库并进行所有设置即可。 e.g:
1. AngularJS:https://github.com/angular/angular-seed
2.角度2:https://github.com/mgechev/angular-seed

正如您所看到的,这些种子项目已经拥有您需要的所有构建工具,现在看起来实际上更容易。那是什么框架。

现在想象一下,您想要将移动应用添加到堆栈中。你甚至不需要改变一件事。您的API已经独立于前端运行,反之亦然。

答案 1 :(得分:2)

问题是基于意见的......所以这是我的见解答。

TLDR:为了提高开发速度和更高的满意度,建立一个项目。不要过早地过度复杂化。当项目变得足够大,并开始为你赚钱时,考虑拆分项目 - 你会知道什么时候到了。

Laravel生态系统非常适合小型,中型甚至大型应用。

Laravel为您提供了一个资源文件夹,您可以在其中放置所有Javascript&前端资产。您有Envoy部署您的应用程序并编写您的部署脚本。你有混合来建立你的资产。你不必使用mix - 你可以写自己的gulp / webpack / grunt等......

通过将一个项目保持在一起,您可以将相同的IDE项目用于前端和后端工作,同时保持关注点分离,因为所有后端代码都与前端代码完全分离。您可以调整从angular发送的有效负载,并调整PHP api中有效负载的处理方式,这样您只需要1个ide,一个浏览器和一个终端客户端。

将项目保持在一起最好的事情是,假设您使用的是VCS(git)并且您确实应该这样,那么您的前端和后端将始终彼此同步。否则,你需要管理&协调前端和后端代码的部署。

当你的应用程序变得足够大时,由于前端和后端应该已经非常松散地耦合,因此不需要花费很长时间来分离项目。

只需考虑您为应用程序引入的所有复杂的复杂层。将更改部署到REST API时,可能还需要将更改部署到角度应用程序。什么版本的角度应用与哪个版本的API兼容?如果你有一个开发团队,从事特定项目,那么这种复杂性会得到回报 - 但大多数团队都有适当的流程来管理,同步和管理。自动化部署。

答案 2 :(得分:0)

我认为你应该选择2个项目。我愿意。

我将举例说明复杂的增长率。这只是我自己的经验。 (X表示特征量,Y表示它们实现的复杂程度)

通过一个项目,它起初非常简单。没有与服务器通信,没有硬件,一切都纠结。然后接近结束,它开始越来越难以创建更多的功能/页面,因为一切都纠缠不清。

或作为功能: enter image description here

但是,如果你从2个项目开始,当然,一开始会更难(通信,同步等),但复杂性的增长率不会那么高。一切都有它自己的责任,一切都做它需要做的事情。测试更简单,扩展更简单,重构更简单,您可以轻松完成项目。

或作为功能: enter image description here

显然,从上图中可以推断出单个项目的增长率要慢得多。 (当然,不是实际的数字,我没有衡量任何东西或跟踪过这样的项目,这只是出于我自己的经验)