从控制器调用外部 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)

Laravel 4 使用数据从控制器向外部 url 发出 post 请求

从 laravel 调用 HTTPS 请求到外部 API

Api 调用 Laravel 8 后如何从控制器返回视图?

如何从 laravel 控制器执行外部 shell 命令?

Laravel 为外部用户登录成功设置会话或令牌 - 无用户仅数据库 Api 用户