从控制器调用外部 API 函数,LARAVEL 4
Posted
技术标签:
【中文标题】从控制器调用外部 API 函数,LARAVEL 4【英文标题】:Call external API function from controller, LARAVEL 4 【发布时间】:2014-05-06 19:41:22 【问题描述】:我在 laravel 4 上构建了一个 API,它返回 json 结果。对于 API,我创建了一个文件夹。现在我为 Web 应用程序创建了另一个外部项目,我想要的是从 laravel 应用程序控制器访问 API 函数。 更清楚地说,我如何从 laravel 控制器发出外部 API 请求?
【问题讨论】:
查看***中另一个类似问题的答案,使用guzzle调用外部api***.com/a/32569599/2293686 【参考方案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.
以上是关于从控制器调用外部 API 函数,LARAVEL 4的主要内容,如果未能解决你的问题,请参考以下文章
减少对外部 API 的身份验证调用(Laravel 5.6)