Magento2 如何在magento 2.2中调用外部API?

Magento2 如何在magento 2.2中调用外部API?,magento2,Magento2,我不熟悉Magento 2。我需要以下查询的帮助 如何在页面加载或单击Magento 2.2中的按钮时调用外部API 我们是否需要为同样的问题创建一个观察者,或者是否有更好的方法来做到这一点。如果为分步过程提供任何链接,我们将不胜感激。首先,我们需要知道如何调用基本API。下面是关于GET的示例: $externalAPI = 'https://your/external/api_url' $ch = curl_init($externalAPI); curl_setopt($ch, CURL

我不熟悉Magento 2。我需要以下查询的帮助

如何在页面加载或单击Magento 2.2中的按钮时调用外部API


我们是否需要为同样的问题创建一个观察者,或者是否有更好的方法来做到这一点。如果为分步过程提供任何链接,我们将不胜感激。

首先,我们需要知道如何调用基本API。下面是关于GET的示例:

$externalAPI = 'https://your/external/api_url'

$ch = curl_init($externalAPI);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
 
$result = curl_exec($ch);
 
var_dump($result);
在Magento方面,我们可以使用
\Magento\Framework\HTTP\Client\Curl
类:

$apiUrl = '';
$this->curl->addHeader('Content-Type', 'application/json');
$this->curl->get($apiUrl);
$body = $this->curl->getBody();
$httpCode = $this->curl->getStatus();
//Quick decoding body
$dataResponse = \Zend_Json::decode($body);
如何在页面加载或单击中的按钮时调用外部API Magento 2.2

我们是否需要为相同的问题创建一个观察者,或者是否存在 一个更好的方法

这取决于需求。什么时候需要连接到API?还是只在前端显示


一旦知道何时(或何地?)需要调用外部API。您可以选择插件、观察者或Ajax解决方案。

首先,我们需要知道如何调用基本API。下面是关于GET的示例:

$externalAPI = 'https://your/external/api_url'

$ch = curl_init($externalAPI);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
 
$result = curl_exec($ch);
 
var_dump($result);
在Magento方面,我们可以使用
\Magento\Framework\HTTP\Client\Curl
类:

$apiUrl = '';
$this->curl->addHeader('Content-Type', 'application/json');
$this->curl->get($apiUrl);
$body = $this->curl->getBody();
$httpCode = $this->curl->getStatus();
//Quick decoding body
$dataResponse = \Zend_Json::decode($body);
如何在页面加载或单击中的按钮时调用外部API Magento 2.2

我们是否需要为相同的问题创建一个观察者,或者是否存在 一个更好的方法

这取决于需求。什么时候需要连接到API?还是只在前端显示


一旦知道何时(或何地?)需要调用外部API。您可以选择插件、Observer或Ajax解决方案。

Ajax是否适合您?我的意思是,如果你点击这个按钮,一个ajax请求就会触发API调用,ajax对你有用吗?我的意思是,如果你点击这个按钮,一个ajax请求就会触发API调用