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

标签 api codeigniter web-applications laravel-4

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

我们目前有一个网络应用程序和一个移动应用程序,它们都通过 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 应用程序和移动应用程序,因为它们都会执行相同的操作(除非您实际上希望它们不同)。此外,它更容易扩展,因为接口(interface)在任何 API 消费者应用程序中都保持不变。

    这会有很大帮助:https://laracasts.com/series/incremental-api-development

  • 在同一位置构建 API 和 Web 应用程序,需要将您的应用程序分为两部分:一部分响应 AJAX 请求并返回 JSON,另一部分以正常方式响应,返回 php View 和所有这些..

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

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

关于api - Web 应用程序和 API 在同一个 Laravel 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24423071/

相关文章:

java - Tomcat 文件夹作为类路径?

c - Windows 显示/隐藏切换控件

ruby-on-rails - 设计的 token_authenticable 安全吗?

java - Java API 日期错误

php - Codeigniter 2.x SSL 重定向循环

CodeIgniter 上传和调整大小问题

javascript - 在 react 中使用 Axios 在一个 componentDidMount 中调用多个 API

CodeIgniter:我想将数据添加转换为数组

java - servlet 中输入/输出流的性质

c# - Web 应用程序数据层的缺点/优点