Erste Schritte mit Magento Web APIs (REST & SOAP)
Veröffentlicht: 2020-10-06Das Magento 2 Web API Framework bietet Benutzern die Möglichkeit, neue Dienste zu erstellen, die mit Modulen von Drittanbietern kommunizieren können. Sie sind Magento 2 unterstützt REST- und SOAP-Webdienste basierend auf CRUD-Operationen (Erstellen, Lesen, Aktualisieren und Löschen).
In diesem Artikel erklären wir die ersten Schritte zur Verwendung der Magento 2 API. Diese APIs beschleunigen die Verarbeitungsleistung und erleichtern die Übertragung von Daten wie Produkten, Kunden oder Bestellungen sowie die Übertragung an ein Drittsystem. Es hilft Ihnen auch bei der Verwaltung des Inventars.
Durch die Automatisierung des Prozesses hilft Ihnen die Verwendung der API, weniger Code zu schreiben.
Inhaltsverzeichnis
- Was sind Magento-Web-APIs?
- Was können Sie mit den Magento-Web-APIs tun?
- Erste Schritte: Mit Magento 2 Rest API
- Erstellen Sie einen Webdienstbenutzer in Magento 2
- Magento 2 REST API-Authentifizierung
- Holen Sie sich Module mit der REST-API in Magento 2
- Verwenden Sie SOAP-Dienste
- SOAP-Dienste – Authentifizierung mit Magento 2
- Letzte Worte
Was sind Magento-Web-APIs?
Die Magento-Web-API ist für Entwickler, die Webdienste verwenden möchten, die die Kommunikation mit dem Magento-System unterstützen, sehr einfach zu verstehen. Diese Funktionen sind der Schlüssel zur API:
- Magento 2 unterstützt sowohl REST (Representational State Transfer) als auch SOAP (Simple Object Access Protocol).
- Es bietet drei Arten der Authentifizierung: 1) OAuth 1.0a für die Authentifizierung von Drittanbieteranwendungen, 2) die Tokenisierungsmethode für die Authentifizierung mobiler Anwendungen und 3) Anmeldeinformationen für die Verwaltung und Kundenüberprüfung.
- Sie können jede Magento- oder Drittanbieter-Web-API konfigurieren, indem Sie ein paar Zeilen XML schreiben.
- Es unterstützt die Feldfilterung der Web-API, die die mobile Antwort bewahrt.
- Das aktuelle Framework basiert auf dem CRUD- (Create, Read, Update, Delete) und dem Suchmodell.
Was können Sie mit den Magento-Web-APIs tun?
APIs helfen verschiedenen Modulen, miteinander zu kommunizieren. Sie können verwendet werden, um eine Vielzahl von Aufgaben zu erfüllen. Zum Beispiel:
- Sie können mit Magento Online-Shops erstellen und diese mit einem physischen System wie POS (Point of Sale) verbinden, um den Bestand global zu kontrollieren
- Einfache Integration in Backend-Systeme für CRM (Customer Relationship Management) oder ERP (Enterprise Resource Planning) wie Salesforce, Microsoft Dynamics oder andere solide Software
- Es hilft, sich mit dem CMS (Content Management System) zu verbinden
- Sie können JavaScript-Widgets auch im Magento-Backend (Admin-Panel) oder im Magento-Storefront erstellen
Erste Schritte: Mit Magento 2 Rest API
Befolgen Sie diese einfachen Schritte, um eine Webservice-Rolle in Magento 2 zu erstellen:
1.Melden Sie sich beim Magento 2 Admin Panel an.
2. Gehen Sie zu System >> Benutzerrollen und klicken Sie auf die Schaltfläche Neue Rolle hinzufügen.
3. Geben Sie den Rollennamen ein.
4. Geben Sie im Feld Ihr Passwort das aktuelle Passwort Ihres Magento 2 Admin ein.
5.Klicken Sie auf der linken Seite auf Rollenressourcen. Wählen Sie unter Ressourcenzugriff nur das aus, was für Ihren Webdienst erforderlich ist.
6.Sobald Sie fertig sind, klicken Sie auf Rolle speichern.
Erstellen Sie einen Webdienstbenutzer in Magento 2
Erstellen Sie einen neuen Benutzer für die neu erstellte Rolle, indem Sie die folgenden Schritte ausführen:
1.Gehen Sie zu System >> Alle Benutzer und klicken Sie dann auf Neuen Benutzer hinzufügen .
2.Geben Sie die erforderlichen Informationen ein, einschließlich Benutzername , Vor- und Nachname , E- Mail und Passwort .
3. Klicken Sie auf der linken Seite auf Benutzerrolle und wählen Sie dann die neu erstellte Rolle aus. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Benutzer speichern .
Magento 2 REST API-Authentifizierung
Hier werde ich die REST-API über die Token-Authentifizierungsmethode authentifizieren. Dabei werden bei der ersten Verbindung ein Benutzername und ein Passwort übergeben und ein Token empfangen, das für weitere Aufrufe in einer Variablen gespeichert wird.
<?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); ?>
Bitte beachten Sie: Der Benutzername und das Passwort werden als Beispiel verwendet.
Holen Sie sich Module mit der REST-API in Magento 2
Sie können Daten mit der Magento 2 REST API abrufen. Hier ist eine vollständige Liste der REST-APIs für Magento EE und 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); ?>
Im obigen Code habe ich bereits das Token (das zuvor abgerufen wurde) mit der API-URL übergeben, um alle im Magento 2-Store installierten Module zu erhalten.
Hier ist der vollständige Code.
<?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); ?>
Verwenden Sie SOAP-Dienste
Bevor wir uns mit den SOAP-Diensten befassen, ist es wichtig, sich mit den Namenskonventionen von Magento vertraut zu machen:
- Sie müssen den CamelCase für Namensdienste verwenden. Beispiel: MyFirstModule
- Die Zeichenfolge „Service“ wird weggelassen, was bedeutet, dass Sie sie nicht verwenden können.
- Das „Magento“-Präfix und das „Interface“-Suffix werden ebenfalls eskaliert.
- Wenn Ihr „Service“-Name mit dem „Modul“-Namen identisch ist, wird der Modulname weggelassen.
Behalten Sie diese Punkte also unbedingt im Hinterkopf.
SOAP-Dienste – Authentifizierung mit Magento 2
Auf SOAP-Ressourcen kann mit OAuth-Zugriffstoken über HTTP zugegriffen werden. Die OAuth-Authentifizierung ähnelt der Token-Methode, bietet jedoch eine komplexere Anordnung. Zugriffstoken sind Zeichenfolgen, die eine dem Client erteilte Zugriffsberechtigung darstellen.
Hier ist das PHP-Skript, das erklärt, wie man ein Zugriffstoken erhält:
<?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); ?>
Letzte Worte
Dieser Artikel hat die Grundlagen der Magento-Web-APIs umrissen, aber Sie könnten noch viel mehr lernen. Wenn Sie die Verwendung der Magento 2-API besser verstehen möchten, sollten Sie untersuchen, wie Methoden in Magento 2 und Erweiterungen von Drittanbietern integriert sind. Sie sollten auch wissen, wie Sie die Informationen an das benötigte System weitergeben.
Das war's!
Um beruhigt schnelleres Magento-Hosting zu erleben, sehen Sie sich diese kostenlose 3-Tage-Testversion auf DigitalOcean, Vultr und Linode an.