Wat is de Magento 2 API en hoe u deze kunt gebruiken
Magento API is een soort raamwerk dat ontwikkelaars en integrators een goede methode biedt om webservices te maximaliseren die goed communiceren met het Magneto-systeem. Tot de belangrijkste functies behoren ondersteuning voor SOAP (Simple Object Access Protocol) en REST (Representation State Transfer). De dekking is voor zowel SOAP als REST in Magento 2 precies hetzelfde.
Er zijn 3 soorten authenticatie: De mobiele applicaties authenticeren via tokens De applicaties van derden authenticeren via Oath 1.0a. De authenticatie van klanten en beheerders via inloggegevens. Elk account en elke integratie fungeert als toegewezen bronnen waartoe ze toegang hebben. Het API-framework bewaakt de oproepen om te controleren of het account geautoriseerd is om het verzoek uit te voeren.
Elke Magento-service of service van derden kan via XML worden geconfigureerd in een web-API. Om de web-API te configureren, moet u XML-attributen en -elementen definiëren in een webapi.xml-configuratiebestand. Zodra de service niet in een configuratiebestand is gedefinieerd, wordt deze niet weergegeven./> Het raamwerk is verankerd in het CRUD-model, wat staat voor Create, Read, Update en Delete. Het systeem ondersteunt geen enkele webhook. Het raamwerk ondersteunt echter veldfiltering van web-API-reacties om de mobiele bandbreedte beter te behouden. De integratiestijl van Web API helpt een web-API om meerdere services tegelijkertijd te gebruiken om de efficiëntie te bevorderen. De Magento API's kunnen worden gebruikt om taken uit te voeren zoals: Het creëren van een winkelapplicatie en het traditionele type applicatie dat kan worden gedownload naar een mobiele telefoon of apparaat. Deze applicatie kan door de medewerkers in een showroom worden gebruikt om de winkelervaring van de klant te vergemakkelijken. Integratie met CRM (Customer Relationship Management) of ERP (Enterprise Resource Planning) backend-systemen zoals Xero of Salesforce. Integratie van CMS (Content Management Systeem). Inhoudstags worden echter nog niet ondersteund. JavaScript-widgets maken in het beheerdersdashboard of de Magento-winkel. De widget maakt AJAX-oproepen aan om toegang te krijgen tot services. De Magento API ondersteunt XML-RPC en SOAP. SOAP dient als het standaardprotocol.
ZEEP
Om verbinding te maken met Magento SOAP-webservices, laadt u de WSDL in uw SOAP-client vanaf een van deze URL's: http://magentohost/api/?wsdl
http://magentohost/api/soap/?wsdl Waar magentohost het domein is voor uw Magento-host.
Vanaf v1.3 kunt u ook de volgende URL gebruiken om toegang te krijgen tot de Magento API v2, die is toegevoegd om de compatibiliteit met Java en.NET te verbeteren: http://magentohost/api/v2_soap?wsdl=1 Het volgende PHP-voorbeeld toont hoe SOAP-aanroepen naar de Magento API v1 te maken: $client = new SoapClient('http://magentohost/api/soap/?wsdl'); // Als iets API-authenticatie vereist, // zorg dan voor een sessietoken $session = $client->login('apiUser', 'apiKey'); $result = $client->call($session, 'somestuff.method'); $result = $client->call($session, 'somestuff.method', 'arg1'); $result = $client->call($session, 'somestuff.method', array('arg1', 'arg2', 'arg3')); $result = $client->multiCall($session, array( array('somestuff.method'), array('somestuff.method', 'arg1'), array('somestuff.method', array('arg1', 'arg2')) )); // Als u de sessie niet meer nodig heeft $client->endSession($session);
XML-RPC
Om XML-RPC te gebruiken, laadt u de volgende URL in uw XML-RPC-client: http://magentohost/api/xmlrpc/ Waarbij magentohost het domein is voor uw Magento-host.
Het volgende PHP-voorbeeld laat zien hoe u XML-RPC-aanroepen kunt maken: $client = new Zend_XmlRpc_Client('http://magentohost/api/xmlrpc/'); // Als iets API-authenticatie vereist, // moeten we sessietoken $session = $client->call('login', array('apiUser', 'apiKey')) krijgen; $client->call('call', array($session, 'somestuff.method', array('arg1', 'arg2', 'arg3'))); $client->call('call', array($session, 'somestuff.method', 'arg1')); $client->call('call', array($session, 'somestuff.method')); $client->call('multiCall', array($session, array( array('somestuff.method', 'arg1'), array('somestuff.method', array('arg1', 'arg2')), array('iets.methode') ) )); // Als je de sessie niet meer nodig hebt $client->call('endSession', array($session)); De XML-RPC ondersteunt alleen versie 1 van de Magento API.
API-methoden
De volgende tabel bevat de API-methoden die kunnen worden aangeroepen vanuit uw SOAP- of XML-RPC-client op de Magento v1 API. Beschrijving Retourwaarde startSession() Start de API-sessie en retourneer de sessie-ID. string endSession(sessionId) Beëindig de API-sessie. boolean login(apiUser, apiKey) Start de API-sessie, retourneer de sessie-ID en autoriseer de API-gebruiker. string call(sessionId, resourcePath,array arguments) Roep de API-bron aan die is toegestaan in de huidige sessie. Zie aantekening onderaan. mixed multiCall(sessionId, array calls,array options) Roep de methoden van de API-bron aan die zijn toegestaan voor de huidige sessie. Zie opmerkingen hieronder. array resources(sessionId) Retourneert een lijst met beschikbare API-bronnen en -methoden die zijn toegestaan voor de huidige sessie. array globalFaults(sessionId) Retourneert een lijst met foutberichten en hun codes die niet afhankelijk zijn van een bron. array resourceFaults(sessionId, resourceName) Retourneert een lijst met de opgegeven bronfoutberichten, als deze bron is toegestaan in de huidige sessie. array Opmerking: Als er voor call en multiCall geen sessie is opgegeven, kunt u alleen bronnen aanroepen die niet door ACL zijn beveiligd. Opmerking: Als bij multiCall de optie “break” is opgegeven, wordt multiCall afgebroken bij de eerste fout.
De Magento SOAP API v2 ondersteunt de methoden call() en multiCall() niet, en biedt in plaats daarvan een aparte methode voor elke API-bron.
Globale API-fouten
De volgende tabel bevat foutcodes die van toepassing zijn op alle SOAP/XML-RPC API-aanroepen. Foutcode Foutmelding 0 Onbekende fout 1 Interne fout. Zie logboek voor details. 2 Toegang geweigerd. 3 Ongeldig API-pad. 4 Resourcepad kan niet worden opgevraagd.
SOAP API-versie v2
Sinds Magento 1.3 is ook versie v2 van de SOAP API beschikbaar. Het belangrijkste verschil tussen v1 en v2 is dat in plaats van de methoden call en multiCall te gebruiken, er afzonderlijke methoden zijn voor elk van de acties.
Beschouw bijvoorbeeld de volgende PHP-code met SOAP v1. $params = array(array('status'=>array('eq'=>'pending'), 'customer_is_guest'=>array('eq'=>'1')) )); $result = $client->call($sessionId, 'sales_order.list', $params); Met SOAP v2 zou de volgende code gelijkwaardig zijn. $params = array('filter' => array( array('key' => 'status', 'value' => 'in behandeling'), array('key' => 'customer_is_guest', 'value' => ' 1'))); $result = $client->salesOrderList($sessionId, $params); Houd er rekening mee dat de WSDL voor SOAP v1 en SOAP v2 verschillend zijn.
Merk op dat in SOAP v1 het aanpassen van de API niet gepaard ging met het wijzigen van de WSDL. In SOAP v2 zijn wijzigingen aan de WSDL vereist. U kunt de SOAP v2 API configureren zodat deze WS-I-compatibel is in het systeemconfiguratiemenu. Om dit te doen, stelt u Services > Magento Core API > WS-I Compliance in op Ja. Houd er rekening mee dat de WSDL voor de SOAP v2 API anders is in de WS-I-compatibele modus. Met behulp van de WS-I-compatibele SOAP v2 API WSDL is het eenvoudig om automatisch clientklassen voor Java, .NET en andere talen te genereren met behulp van de standaardbibliotheken.