Прежде всего, нам нужно знать, как вызвать базовый 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
class:
$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.