首页 文章

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

提问于
浏览
4

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

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

在这一点上,看起来我们正在为Web应用程序切换到Laravel,我认为这可能是一个很好的机会也可以重做API,因为我们的一些规则已经改变,可能是时候完全离开CodeIgniter了 . .

现在提出这个问题:我已经阅读了一些人们将Web应用程序和API构建到同一个Laravel项目中的资源,并且只是使用路由来分别控制API和Web应用程序的映射 . 虽然这看起来像一个有趣的想法,但它让我怀疑它是否是最佳实践,因为我想知道重量级API流量是否会减慢Web应用程序的速度,反之亦然 .

题:

最好的做法是将api保持在自己的项目中解耦还是可以在同一个项目中进行?

跟进问题

要通过API通过API拨打电话,如果它没有解耦,那么这只是对API路由的调用吗?最好通过课程?

1 回答

  • 3

    在我看来,你有两个选择:

    • 仅使用Laravel构建API( Response::json 无处不在),然后使用像Angular或jQuery这样的JS框架构建Web应用程序 . Web应用程序和移动应用程序都可以向Laravel应用程序发出AJAX请求,JS框架将处理它的显示 . 这将是"not building the api + web app in the same place"解决方案 . 您可以在任何地方构建Web应用程序,也可以在Laravel应用程序内部构建 .

    API很容易维护,你甚至可以合并网络应用程序和移动应用程序,因为它们都会这样做(除非你真的希望它们不同) . 此外,它更容易扩展,因为任何API消费者应用程序的界面保持不变 .

    这将有助于 a lothttps://laracasts.com/series/incremental-api-development

    • 在同一个地方构建API和Web应用程序,需要在2中分离你的应用程序:一部分将响应AJAX请求并返回JSON,另一部分将回答正常方式,返回php视图和所有..

    这意味着需要进行大量的额外工作并使视图数量增加一倍,因为您必须构建移动应用程序处理的视图以及Laravel本身处理的视图 . 这需要覆盖和维护(和测试) .

    这取决于你正在建设什么样的项目 . 是SPA吗?

相关问题