Guida introduttiva alle API Web Magento (REST & SOAP)

Pubblicato: 2020-10-06

Il framework dell'API Web Magento 2 offre agli utenti l'opportunità di creare nuovi servizi in grado di comunicare con moduli di terze parti. Sono Magento 2 che supporta i servizi Web REST e SOAP basati su operazioni CRUD (creazione, lettura, aggiornamento ed eliminazione).

In questo articolo, spiegheremo i passaggi iniziali dell'utilizzo dell'API Magento 2. Queste API velocizzano la potenza di elaborazione e facilitano la trasmissione di dati, come prodotti, clienti o ordini, oltre a trasferirli a un sistema di terze parti. Ti aiuta anche a gestire l'inventario.

Automatizzando il processo, l'utilizzo dell'API ti aiuta a scrivere meno codice.

Sommario

  • Cosa sono le API Web Magento?
  • Cosa puoi fare con le API Web Magento?
  • Per iniziare: con l'API Rest di Magento 2
  • Crea utente del servizio Web in Magento 2
  • Autenticazione API REST Magento 2
  • Ottieni moduli utilizzando l'API REST in Magento 2
  • Usa i servizi SOAP
  • Servizi SOAP―Autenticazione tramite Magento 2
  • Parole finali

Cosa sono le API Web Magento?

L'API Web Magento è molto facile da capire per gli sviluppatori che desiderano utilizzare servizi Web che aiutano a comunicare con il sistema Magento. Queste funzionalità sono fondamentali per l'API:

  • Magento 2 supporta sia REST (Representational State Transfer) che SOAP (Simple Object Access Protocol).
  • Offre tre tipi di autenticazione: 1) OAuth 1.0a per l'autenticazione di applicazioni di terze parti, 2) il metodo di tokenizzazione per l'autenticazione di applicazioni mobili e 3) credenziali di accesso per l'amministrazione e la verifica del cliente.
  • Puoi configurare qualsiasi API Web Magento o di terze parti scrivendo alcune righe di XML.
  • Supporta il filtraggio sul campo dell'API Web che conserva la risposta mobile.
  • L'attuale framework si basa sul modello CRUD (crea, read, update, delete) e search.

Cosa puoi fare con le API Web Magento?

Le API aiutano i vari moduli a comunicare tra loro. Possono essere utilizzati per eseguire una vasta gamma di attività. Per esempio:

  • Puoi creare negozi online utilizzando Magento e collegarli a un sistema fisico come POS (Point of Sale) per controllare l'inventario a livello globale
  • Si integra facilmente con i sistemi back-end CRM (Customer Relationship Management) o ERP (Enterprise Resource Planning) come Salesforce, Microsoft Dynamics o altri software audio
  • Aiuta a connettersi con il CMS (Content Management System)
  • Puoi anche creare widget JavaScript sul back-end di Magento (pannello di amministrazione) o sul negozio Magento

Per iniziare: con l'API Rest di Magento 2

Per creare un ruolo del servizio web in Magento 2, segui questi semplici passaggi:

1.Accedi al pannello di amministrazione di Magento 2.

2.Vai su Sistema >> Ruoli utente e fai clic sul pulsante Aggiungi nuovo ruolo .

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

3. Immettere il nome del ruolo .

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

4. Nel campo La tua password , inserisci la password corrente del tuo amministratore Magento 2.

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

5.Sul lato sinistro, fare clic su Risorse ruolo. In Accesso alle risorse, seleziona solo ciò che è richiesto per il tuo servizio web.

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

6. Una volta terminato, premi il pulsante Salva ruolo.

Crea utente del servizio Web in Magento 2

Crea un nuovo utente per il ruolo appena creato seguendo questi passaggi:

1.Vai su Sistema >> Tutti gli utenti, quindi fai clic su Aggiungi nuovo utente .

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

2.Inserire le informazioni richieste, inclusi Nome utente, Nome e Cognome , Email e Password .

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

3. Sul lato sinistro, fare clic su Ruolo utente , quindi selezionare il ruolo appena creato. Al termine, fai clic sul pulsante Salva utente .

Guida introduttiva alle API Web Magento | Blog Magento di Mageworx

Autenticazione API REST Magento 2

Qui, autenticherò l'API REST tramite il metodo di autenticazione del token. Ciò comporta il passaggio di un nome utente e una password nella connessione iniziale e la ricezione di un token che verrà salvato in una variabile per ulteriori chiamate.

 <?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); ?>

Nota: il nome utente e la password sono usati come esempio.

Ottieni moduli utilizzando l'API REST in Magento 2

Puoi recuperare i dati utilizzando l'API REST di Magento 2. Ecco un elenco completo delle API REST per Magento EE e 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); ?>

Nel codice sopra, ho già passato il token (che è stato recuperato in precedenza) con l'URL dell'API per ottenere tutti i moduli installati sullo store Magento 2.

Ecco il codice completo.

 <?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); ?>

Usa i servizi SOAP

Prima di entrare nei servizi SOAP, è importante conoscere le convenzioni di denominazione di Magento:

  • Devi usare CamelCase per i servizi di denominazione. Ad esempio, MyFirstModule
  • La stringa "Servizio" viene omessa, il che significa che non puoi usarla.
  • Anche il prefisso "Magento" e il suffisso "Interfaccia" vengono intensificati.
  • Se il nome del tuo "servizio" è uguale al nome del "modulo", il nome del modulo verrà omesso.

Riepilogo aggiornamenti MageWorx | Blog di MageWorx

Quindi, assicurati di tenere a mente questi punti.

Servizi SOAP―Autenticazione tramite Magento 2

È possibile accedere alle risorse SOAP utilizzando i token di accesso OAuth su HTTP. L'autenticazione OAuth è simile al metodo token ma fornisce una disposizione più complessa. I token di accesso sono stringhe che rappresentano un'autorizzazione di accesso rilasciata al client.

Ecco lo script PHP che spiega come ottenere un token di accesso:

 <?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); ?>

Parole finali

Questo articolo ha delineato le basi delle API web di Magento, ma c'è molto di più che potresti imparare. Se desideri una comprensione più salda dell'utilizzo dell'API Magento 2, dovresti esplorare come i metodi sono integrati in Magento 2 e estensioni di terze parti. Dovresti anche capire come passare le informazioni al sistema necessario.

Quindi, questo è tutto!

Per provare un hosting Magento più veloce in tutta tranquillità, dai un'occhiata a questa prova gratuita di 3 giorni su DigitalOcean, Vultr e Linode.