Начало работы с веб-API Magento (REST и SOAP)
Опубликовано: 2020-10-06Платформа веб-API Magento 2 предлагает пользователям возможность создавать новые службы, которые могут взаимодействовать со сторонними модулями. Это Magento 2, поддерживающий веб-сервисы REST и SOAP на основе операций CRUD (создание, чтение, обновление и удаление).
В этой статье мы объясним начальные шаги использования Magento 2 API. Эти API ускоряют вычислительную мощность и облегчают передачу данных, таких как продукты, клиенты или заказы, а также передачу их в стороннюю систему. Это также поможет вам управлять запасами.
Благодаря автоматизации процесса использование API помогает писать меньше кода.
Оглавление
- Что такое веб-API Magento?
- Что вы можете делать с веб-API Magento?
- Начало работы: с Magento 2 Rest API
- Создать пользователя веб-службы в Magento 2
- Аутентификация Magento 2 REST API
- Получить модули с помощью REST API в Magento 2
- Используйте SOAP-сервисы
- Службы SOAP―Аутентификация с использованием Magento 2
- Заключительные слова
Что такое веб-API Magento?
Веб-API Magento очень прост для понимания разработчиками, которые хотят использовать веб-сервисы, которые помогают взаимодействовать с системой Magento. Эти функции являются ключевыми для API:
- Magento 2 поддерживает как REST (передача репрезентативного состояния), так и SOAP (простой протокол доступа к объектам).
- Он предлагает три типа аутентификации: 1) OAuth 1.0a для аутентификации сторонних приложений, 2) метод токенизации для аутентификации мобильных приложений и 3) учетные данные для входа в систему для администрирования и проверки клиентов.
- Вы можете настроить любой Magento или сторонний веб-API, написав несколько строк XML.
- Он поддерживает фильтрацию полей веб-API, которая сохраняет мобильный ответ.
- Текущая структура основана на CRUD (создание, чтение, обновление, удаление) и модели поиска.
Что вы можете делать с веб-API Magento?
API помогают различным модулям взаимодействовать друг с другом. С их помощью можно выполнять широкий спектр задач. Например:
- Вы можете создавать интернет-магазины с помощью Magento и подключать их к физической системе, такой как POS (точка продажи), для глобального управления запасами.
- Простая интеграция с серверными системами CRM (управление взаимоотношениями с клиентами) или ERP (планирование ресурсов предприятия), такими как Salesforce, Microsoft Dynamics или другое надежное программное обеспечение.
- Это помогает подключиться к CMS (система управления контентом)
- Вы также можете создавать виджеты JavaScript в бэкэнде Magento (панель администратора) или на витрине магазина Magento.
Начало работы: с Magento 2 Rest API
Чтобы создать роль веб-службы в Magento 2, выполните следующие простые шаги:
1. Войдите в панель администратора Magento 2.
2. Перейдите в раздел « Система» >> « Роли пользователей » и нажмите кнопку « Добавить новую роль ».
3. Введите имя роли .
4. В поле « Ваш пароль » введите текущий пароль администратора Magento 2.
5. С левой стороны щелкните Ресурсы ролей. В разделе «Доступ к ресурсам» выберите только то, что требуется для вашей веб-службы.
6. После этого нажмите «Сохранить роль».
Создать пользователя веб-службы в Magento 2
Создайте нового пользователя для вновь созданной роли, выполнив следующие действия:
1. Перейдите в раздел « Система» >> « Все пользователи» и нажмите « Добавить нового пользователя ».
2.Введите необходимую информацию, включая имя пользователя , имя и фамилию , адрес электронной почты и пароль .
3. С левой стороны щелкните Роль пользователя и выберите только что созданную роль. После этого нажмите кнопку « Сохранить пользователя ».
Аутентификация Magento 2 REST API
Здесь я буду аутентифицировать REST API с помощью метода аутентификации токена. Это включает в себя передачу имени пользователя и пароля при начальном соединении и получение токена, который будет сохранен в переменной для дальнейших вызовов.
<?php //API URL for authentication $apiURL="http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token"; //parameters passing with URL $data = array("username" => "username", "password" => "********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); ?>
Обратите внимание: имя пользователя и пароль используются в качестве примера.
Получить модули с помощью REST API в Magento 2
Вы можете получать данные с помощью Magento 2 REST API. Вот полный список REST API для Magento EE и CE.
<?php //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourgeneratedUrl'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>
В приведенном выше коде я уже передал токен (который был получен ранее) с URL-адресом API, чтобы получить все модули, установленные в магазине Magento 2.
Вот полный код.
<?php //API URL for authentication $apiURL="URL"; //parameters passing with URL $data = array("username" => "username", "password" => "*********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); //******************************************// //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourURL'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>
Используйте SOAP-сервисы
Прежде чем мы перейдем к службам SOAP, важно узнать о соглашениях об именах Magento:
- Вы должны использовать CamelCase для служб именования. Например, MyFirstModule
- Строка «Сервис» опущена, то есть вы не можете ее использовать.
- Префикс «Magento» и суффикс «Интерфейс» также эскалируются.
- Если ваше имя «сервиса» совпадает с именем «модуля», имя модуля будет опущено.
Поэтому не забывайте об этих моментах.
Службы SOAP―Аутентификация с использованием Magento 2
Доступ к ресурсам SOAP можно получить с помощью маркеров доступа OAuth через HTTP. Аутентификация OAuth аналогична методу токена, но имеет более сложную структуру. Токены доступа — это строки, представляющие авторизацию доступа, выданную клиенту.
Вот PHP-скрипт, объясняющий, как получить токен доступа:
<?php $opts = [ 'http'=> [ 'header' => 'Authorization: Bearer 36849300bca4fbff758d93a3379f1b8e' ] ]; $wsdlUrl = 'http://magento.ll/soap/default?wsdl=1&services=testModule1AllSoapAndRestV1'; $serviceArgs = ["id" => 1]; $context = stream_context_create($opts); $soapClient = new SoapClient($wsdlUrl, ['version' => SOAP_1_2, 'stream_context' => $context]); $soapResponse = $soapClient->testModule1AllSoapAndRestV1Item($serviceArgs); ?>
Заключительные слова
В этой статье описаны основы веб-API Magento, но вы можете узнать гораздо больше. Если вы хотите получить более четкое представление об использовании API Magento 2, вам следует изучить, как методы встроены в Magento 2 и сторонние расширения. Вы также должны понимать, как передавать информацию в нужную систему.
Итак, это все!
Чтобы со спокойной душой испытать более быстрый хостинг Magento, ознакомьтесь с этой 3-дневной бесплатной пробной версией на DigitalOcean, Vultr и Linode.