【问题标题】:Call external API function from controller, LARAVEL 4从控制器调用外部 API 函数,LARAVEL 4
【发布时间】:2014-05-06 19:41:22
【问题描述】:

我在 laravel 4 上构建了一个 API,它返回 json 结果。对于 API,我创建了一个文件夹。现在我为 Web 应用程序创建了另一个外部项目,我想要的是从 laravel 应用程序控制器访问 API 函数。 更清楚地说,我如何从 laravel 控制器发出外部 API 请求?

【问题讨论】:

标签: php laravel laravel-4


【解决方案1】:

你可以使用Guzzle:

安装它:

composer require guzzle/guzzle ~3.0

创建一个设置基本 URL 的客户端:

$client = new \Guzzle\Service\Client('http://api.github.com/users/');

得到你的回应:

$response = $client->get("users/$username")->send();

并显示它:

dd($response);

但是,如果您尝试遵循 MVC 模式,则不应直接在控制器中执行此操作,因此请创建一个服务类,从您的控制器或存储库中调用,为您完成此工作。

【讨论】:

  • 已编辑,因为 Guzzle 刚刚发布了第 4 版,这是第 3 版的答案。
  • 现在是第 5 版,不再需要 cURL 来发送 HTTP 请求。如果未安装 cURL,Guzzle 将使用 PHP 流包装器发送 HTTP 请求。或者,您可以提供自己的 HTTP 处理程序用于发送请求。
  • guzzle 不是已经包含在 Laravel 中了吗? (我在运行 composer update 时看到过)
  • 作曲家告诉我Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead.
猜你喜欢
  • 2021-08-02
  • 2013-11-28
  • 2014-10-30
  • 2012-12-24
  • 2016-11-09
  • 1970-01-01
  • 2012-11-20
  • 2014-04-19
  • 2016-09-30
相关资源
最近更新 更多