Pierwsze kroki z interfejsami Magento Web API (REST & SOAP)
Opublikowany: 2020-10-06Framework Magento 2 Web API oferuje użytkownikom możliwość tworzenia nowych usług, które mogą komunikować się z modułami innych firm. Są to Magento 2 obsługujące usługi sieciowe REST i SOAP oparte na operacjach CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie).
W tym artykule wyjaśnimy pierwsze kroki korzystania z Magento 2 API. Te interfejsy API przyspieszają moc obliczeniową i ułatwiają przesyłanie danych, takich jak produkty, klienci lub zamówienia, a także przenoszenie ich do systemu zewnętrznego. Pomaga również w zarządzaniu inwentarzem.
Automatyzując proces, użycie API pomaga pisać mniej kodu.
Spis treści
- Czym są Magento Web API?
- Co można zrobić z internetowymi interfejsami API Magento?
- Pierwsze kroki: z Magento 2 Rest API
- Utwórz użytkownika usługi internetowej w Magento 2
- Uwierzytelnianie Magento 2 REST API
- Uzyskaj moduły za pomocą REST API w Magento 2
- Użyj usług SOAP
- Usługi SOAP (Uwierzytelnianie za pomocą Magento 2)
- Ostatnie słowa
Czym są Magento Web API?
Internetowy interfejs API Magento jest bardzo łatwy do zrozumienia dla programistów, którzy chcą korzystać z usług internetowych, które pomagają komunikować się z systemem Magento. Te funkcje są kluczowe dla API:
- Magento 2 obsługuje zarówno REST (Representational State Transfer), jak i SOAP (Simple Object Access Protocol).
- Oferuje trzy rodzaje uwierzytelniania: 1) OAuth 1.0a do uwierzytelniania aplikacji innych firm, 2) metoda tokenizacji do uwierzytelniania aplikacji mobilnych oraz 3) dane logowania do administrowania i weryfikacji klienta.
- Możesz skonfigurować dowolny internetowy interfejs API Magento lub innej firmy, pisząc kilka wierszy XML.
- Obsługuje filtrowanie pól internetowego interfejsu API, które zachowują odpowiedź mobilną.
- Obecny framework oparty jest na CRUD (tworzenie, odczytywanie, aktualizowanie, usuwanie) oraz modelu wyszukiwania.
Co można zrobić z internetowymi interfejsami API Magento?
Interfejsy API pomagają różnym modułom komunikować się ze sobą. Mogą być używane do wykonywania szerokiej gamy zadań. Na przykład:
- Możesz tworzyć sklepy internetowe za pomocą Magento i łączyć je z fizycznym systemem, takim jak POS (Point of Sale), aby kontrolować zapasy na całym świecie
- Łatwa integracja z systemami zaplecza CRM (zarządzanie relacjami z klientami) lub ERP (planowanie zasobów przedsiębiorstwa), takimi jak Salesforce, Microsoft Dynamics lub innym solidnym oprogramowaniem
- Pomaga połączyć się z CMS (System Zarządzania Treścią)
- Możesz także tworzyć widżety JavaScript na backendzie Magento (panel administracyjny) lub witrynie sklepu Magento
Pierwsze kroki: z Magento 2 Rest API
Aby utworzyć rolę usługi sieciowej w Magento 2, wykonaj następujące proste kroki:
1. Zaloguj się do panelu administracyjnego Magento 2.
2. Przejdź do System >> Role użytkownika i kliknij przycisk Dodaj nową rolę .
3. Wprowadź nazwę roli .
4. W polu Twoje hasło wprowadź aktualne hasło administratora Magento 2.
5. Po lewej stronie kliknij Zasoby ról. W obszarze Dostęp do zasobów wybierz tylko to, co jest wymagane dla Twojej usługi sieci Web.
6. Po zakończeniu naciśnij Zapisz rolę.
Utwórz użytkownika usługi internetowej w Magento 2
Utwórz nowego użytkownika dla nowo utworzonej roli, wykonując następujące kroki:
1. Przejdź do System >> Wszyscy użytkownicy, a następnie kliknij Dodaj nowego użytkownika .
2. Wprowadź wymagane informacje, w tym nazwę użytkownika , imię i nazwisko , adres e-mail oraz hasło .
3. Po lewej stronie kliknij Rola użytkownika , a następnie wybierz nowo utworzoną rolę. Po zakończeniu kliknij przycisk Zapisz użytkownika .
Uwierzytelnianie Magento 2 REST API
Tutaj będę uwierzytelniać REST API za pomocą metody uwierzytelniania tokenem. Wiąże się to z przekazaniem nazwy użytkownika i hasła w początkowym połączeniu oraz otrzymaniem tokena, który zostanie zapisany w zmiennej do dalszych wywołań.
<?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); ?>
Uwaga: nazwa użytkownika i hasło są używane jako przykład.
Uzyskaj moduły za pomocą REST API w Magento 2
Możesz pobrać dane za pomocą Magento 2 REST API. Oto pełna lista interfejsów API REST dla Magento EE i 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); ?>
W powyższym kodzie przekazałem już token (który został pobrany wcześniej) z adresem URL API, aby pobrać wszystkie moduły zainstalowane w sklepie Magento 2.
Oto kompletny kod.
<?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); ?>
Użyj usług SOAP
Zanim przejdziemy do usług SOAP, warto zapoznać się z konwencjami nazewnictwa Magento:
- Musisz użyć CamelCase do nazewnictwa usług. Na przykład MójPierwszyModuł
- Ciąg „Service” został pominięty, co oznacza, że nie możesz go użyć.
- Prefiks „Magento” i sufiks „Interfejs” są również eskalowane.
- Jeśli nazwa „usługi” jest taka sama jak nazwa „modułu”, nazwa modułu zostanie pominięta.
Dlatego pamiętaj o tych punktach.
Usługi SOAP (Uwierzytelnianie za pomocą Magento 2)
Dostęp do zasobów SOAP można uzyskać za pomocą tokenów dostępu OAuth za pośrednictwem protokołu HTTP. Uwierzytelnianie OAuth jest podobne do metody tokenu, ale zapewnia bardziej złożony układ. Tokeny dostępu to ciągi reprezentujące autoryzację dostępu wydaną klientowi.
Oto skrypt PHP, który wyjaśnia, jak uzyskać token dostępu:
<?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); ?>
Ostatnie słowa
W tym artykule omówiono podstawy internetowych interfejsów API Magento, ale możesz dowiedzieć się o wiele więcej. Jeśli chcesz lepiej zrozumieć wykorzystanie Magento 2 API, powinieneś zbadać, w jaki sposób metody są wbudowane w Magento 2 i rozszerzenia innych firm. Powinieneś także zrozumieć, jak przekazać informacje do potrzebnego systemu.
Więc to jest to!
Aby doświadczyć szybszego hostingu Magento bez obaw, wypróbuj ten 3-dniowy bezpłatny okres próbny na DigitalOcean, Vultr i Linode.