Crea un'API personalizzata in Magento seconda parte

In questa serie, stiamo discutendo le API personalizzate in Magento. 

Nella prima parte, abbiamo creato un modulo personalizzato completo per implementare l'API personalizzata, in cui abbiamo creato i file richiesti per collegare le API personalizzate fornite dal nostro modulo. 

In questa seconda e ultima parte, esamineremo la sezione back-end per dimostrare come utilizzare le API.

Ricapitolazione rapida

Facciamo un breve riepilogo della prima parte. Ecco l'elenco dei file che abbiamo già creato:

  • app / etc / modules / Envato_All.xml: è un file utilizzato per abilitare il nostro modulo personalizzato.
  • app / code / local / Envato / Customapimodule / etc / config.xml: è un file di configurazione del modulo.
  • app / code / local / Envato / Customapimodule / etc / api.xml: è un file che dichiara le API fornite dal nostro modulo.
  • app / code / local / Envato / Customapimodule / etc / wsdl.xml: in questo file definiremo i metodi API come da convenzione di WSDL.
  • app / code / local / Envato / Customapimodule / Helper / Data.php: è un file utilizzato dal sistema di traduzione Magento.
  • app / code / local / Envato / Customapimodule / Model / Product / Api.php: è un file di modello che implementa la logica dei nostri metodi API.
  • app / code / local / Envato / Customapimodule / Model / Product / Api / V2.php: È un file per supportare l'API v2 di Magento.

Inoltre, se hai già abilitato il nostro modulo personalizzato, dovresti vedere che il nostro metodo API "customapimoduleProductList" è elencato insieme alle altre API quando visiti l'http: // yourmagentostore / api / v2_soap? Wsdl = 1 pagina che elenca tutti API disponibili in Magento.

Magento supporta "Ruoli API" e "Utenti API". Abbiamo bisogno di "ruoli API" poiché non vuoi consentire all'utente l'accesso a tutte le API di Magento. I "ruoli API" vengono utilizzati per creare ruoli con autorizzazioni di accesso limitate alle risorse API. 

Ad esempio, è possibile creare un ruolo che consente solo l'accesso in sola lettura alle API "Elenco prodotti". D'altra parte, è possibile creare un ruolo che consenta la modifica del catalogo e verrà assegnato solo agli utenti "autorizzati"!

Impostare "Utente API" e "Ruolo API" dal back-end

In questa sezione creeremo una demo "Ruolo API" e "Utente API". In seguito, li useremo per consumare le API personalizzate fornite dal nostro modulo. Dirigiti verso il back-end di Magento!

Imposta un ruolo API

Vai a Sistema> Servizi Web> (SOAP / XML-RPC) Ruoli. Clicca su Aggiungi nuovo ruolo per creare un nuovo ruolo. Sotto il Informazioni sul ruolo scheda, ho inserito "Demo SOAP Role" nel Nome del ruolo campo.

Successivamente, sotto il Risorse del ruolo scheda, vedrai le diverse risorse con le caselle di controllo. Clicca sul Prodotti> Dati prodotto check-box. Significa che "Demo SOAP Role" può accedere solo alle API della risorsa "Dati prodotto". Clicca sul Salva il ruolo pulsante per salvare le informazioni sul ruolo.

Configura un utente API

Ora, creiamo l'utente API e assegniamo il "Demo SOAP Role" a quell'utente. Vai a Sistema> Servizi Web> (SOAP / XML-RPC) Utenti. Clicca su Aggiungi nuovo utente per creare un nuovo utente. Sotto il Informazioni utente scheda, si prega di compilare le informazioni richieste.

Inoltre, sotto il Ruolo utente scheda seleziona il Demo SOAP Role pulsante di scelta. Clicca sul Salva utente pulsante per salvare le informazioni dell'utente.

Ecco fatto: abbiamo impostato il ruolo e l'utente necessari per accedere alle API di Magento!

Come consumare l'API Magento

In questa sezione vedremo come chiamare le API Magento. Sotto la radice del documento, creare un file PHP di esempio e riempirlo con il seguente contenuto.

login ('soapuser', 'soapuser'); $ result = $ client -> customapimoduleProductList ($ session); $ Cliente -> EndSession ($ session); eco '
'; print_r ($ risultato); // v1 chiama $ client = new SoapClient ('http://www.yourmagentostore.com/api/soap/?wsdl=1'); $ sessione = $ client -> login ('soapuser', 'soapuser'); $ result = $ client -> call ($ session, 'product.list', array (array ())); $ Cliente -> EndSession ($ session); eco '
'; print_r ($ risultato);

Cambia "http://www.yourmagentostore.com" nell'URL del tuo negozio Magento. Come accennato in precedenza, Magento supporta due versioni delle API, v1 e v2. In questo esempio, ho dimostrato entrambi i modi.

Nella modalità API v2, per prima cosa creiamo una nuova istanza della classe "SoapClient". Successivamente, chiamiamo il metodo "login" per accedere allo store Magento, ovviamente dovremo fornire il nome utente e la password dell '"utente API" creato nella sezione precedente. Infine, chiamiamo il metodo "customapimoduleProductList" per recuperare l'elenco dei prodotti! Il $ session la variabile viene passata come parametro di input al metodo per richiedere l'autenticità del metodo. Una cosa importante da notare qui è che "customapimoduleProduct" è il prefisso della risorsa e "list" è il nome del metodo.

Nella modalità API v1, l'unica parte diversa è la chiamata del metodo API. Stiamo usando un metodo generico "call", in cui un "nome del metodo" e altri parametri vengono passati come argomenti. Come puoi vedere, il "prodotto" è usato come prefisso della risorsa e "elenco" è il nome del metodo!

Conclusione

In modo che riassume la serie! Ora dovresti sentirti a tuo agio con le API Magento e puoi creare API personalizzate secondo le tue esigenze! Sentiti libero di scattare i tuoi suggerimenti e feedback!