【问题标题】:To Make an API Centric Application or Not? - Laravel是否制作以 API 为中心的应用程序? - 拉拉维尔
【发布时间】:2013-01-05 02:20:06
【问题描述】:

所以。在过去的几周里,我开始了学习 Laravel 的旅程,并且非常享受它。

现在是重新设计网站的时候了,我认为是时候加强我们的一些功能了,所以我正在从 CodeIgniter 切换到 Laravel。

我想知道是否值得从 Laravel 中的 RESTful API 层开始(很容易创建)并将其用作 Web 应用程序的基础。将来我们可能会构建一个需要使用 API 的移动应用程序。所以:

  1. 是否值得让 Web 应用程序连接到 API
  2. 以及无需编写大量代码即可调用 API 的最简单方法是什么 每次我想发出请求时都使用 cURL 行吗?

【问题讨论】:

  • 只是一个补充 - 尝试使用 Guzzle (guzzlephp.org) 通过 PHP 发送和接收请求,它是 Curl 的一个可爱的包装器,可以节省你编写大量 curl 请求的时间,例如:@987654323 @。真的很有用!
  • 当我在网络搜索领域继续前进时,我想我会发布这个相关链接。 Aaron Kuzemchak 在 Laracon 2013(Laravel 会议)上的演讲,“使用 Laravel 进行简单的 API 开发”。 youtube.com/watch?v=xa-FRWDxJrI

标签: api codeigniter rest laravel


【解决方案1】:

什么是调用 API 的最简单方法,而无需每次我想发出请求时都为 cURL 编写无数行?

@Sneaksta 尝试使用 postman chrome 扩展来调用休息服务。您可以在此扩展程序中创建表单并将这些表单中的数据传递给您的 Rest 服务 https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?utm_source=chrome-ntp-icon

【讨论】:

    【解决方案2】:

    与往常一样,您的结果可能会有所不同,但这正是我目前正在经历的。我正在使用这种 API 架构迁移一个大型 .Net 站点,我决定将它保留给 Laravel。

    我个人决定这样做是因为:

    1. 更具可扩展性。我可以设置 api.domain.com 然后添加其他 盒子/虚拟机/无论我们的流量增长。事实上,你可以加载 通过“循环”或多个 dns 条目仅平衡 api 那个域。

    2. 面向未来的新网站和应用程序。听起来你在 同样的情况。我可以看到明年会添加一两个应用程序 左右。

    3. 损失成本。你已经在布置你的控制器了,所以真的 只需将它们设置为 RESTful 并缩小 调整以适应。

    公平地说,一些反点:

    1. 通过 API 处理可能会增加额外的加载时间,但这应该是最少的。

    2. 如果您想将内容锁定在您的应用中,则需要考虑其他安全项目。

    不管怎样,欢迎来到 Laravel!

    【讨论】:

    • 感谢您的回答,欢迎您! :) 非常值得考虑。
    【解决方案3】:

    绝对值得。

    我目前正在为一家成熟的托管公司重新设计一个凌乱的 PHP 代码,将其变成漂亮的 Laravel 代码。我已经有一个使用它的移动应用程序 - Laravel 可以轻松地用一行返回 JSON 数据 -

    Response::json('OK', 200);
    

    Response::eloquent(Auth::user());
    

    $tasks = Task::all();
    Response::eloquent($tasks);
    

    据我所知,您不需要使用 CURL。 您可以使用简单的 AJAX 发出所有请求,jQuery 会简化它。

    同时使用一些 MVC JS 框架可以帮助您使客户端的应用程序代码结构更加优雅,其优点是当您准备好让您的 API 进行一些实际测试时,您可以轻松地将其打包到 PhoneGap 中。

    今天我在我的博客上发布了一个简单的示例,您可以尝试看看这种方法是否值得您花时间:http://maxoffsky.com/code-blog/login-to-laravel-web-application-from-phonegap-or-backbone/

    如果您认为它在正确的轨道上,请查看并接受答案。

    【讨论】:

    • 嘿,伙计。我经常读你的博客。非常感谢您的回答。不过我想知道,假设我已经在 Laravel 中设置了 API,然后我会在其上创建一个层来与 Web 应用程序的 API 交互吗?例如,我有一个控制器,它显示主页并列出一堆数据库结果。我将如何与 API 服务器端交互来实现这一点?
    • Max,我接受你的回答,因为它让我走上了正轨。我已经开始使用 cURL 将 PHP 连接到我在 Laravel 中构建的 API。感谢您的帮助!
    • 您可以使用 CURL,但创建一个从服务器端 API 加载内容的客户端应用程序可能更容易一些。
    • 哦,你的意思是使用 javascript(客户端)之类的东西与 api 交互?而不是 php 中的 cURL?
    • +1 也是我问题的答案。也非常感谢您的博文。
    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 2021-02-28
    • 2020-08-27
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多