Premiers pas avec les API Web Magento (REST et SOAP)

Publié: 2020-10-06

Le framework Magento 2 Web API offre aux utilisateurs la possibilité de créer de nouveaux services pouvant communiquer avec des modules tiers. Ce sont Magento 2 qui prend en charge les services Web REST et SOAP basés sur les opérations CRUD (créer, lire, mettre à jour et supprimer).

Dans cet article, nous expliquerons les premières étapes d'utilisation de l'API Magento 2. Ces API accélèrent la puissance de traitement et facilitent la transmission de données, telles que les produits, les clients ou les commandes, ainsi que leur transfert vers un système tiers. Il vous aide également à gérer l'inventaire.

En automatisant le processus, l'utilisation de l'API vous aide à écrire moins de code.

Table des matières

  • Que sont les API Web Magento ?
  • Que pouvez-vous faire avec les API Web Magento ?
  • Premiers pas : avec l'API Rest de Magento 2
  • Créer un utilisateur de service Web dans Magento 2
  • Authentification API REST Magento 2
  • Obtenir des modules à l'aide de l'API REST dans Magento 2
  • Utiliser les services SOAP
  • Services SOAP―Authentification à l'aide de Magento 2
  • Derniers mots

Que sont les API Web Magento ?

L'API Web Magento est très facile à comprendre pour les développeurs qui cherchent à utiliser des services Web qui aident à communiquer avec le système Magento. Ces fonctionnalités sont essentielles pour l'API :

  • Magento 2 prend en charge REST (Representational State Transfer) et SOAP (Simple Object Access Protocol).
  • Il propose trois types d'authentification : 1) OAuth 1.0a pour l'authentification des applications tierces, 2) la méthode de tokenisation pour l'authentification des applications mobiles et 3) les identifiants de connexion pour l'administration et la vérification des clients.
  • Vous pouvez configurer n'importe quelle API Web Magento ou tierce en écrivant quelques lignes de XML.
  • Il prend en charge le filtrage des champs de l'API Web qui conserve la réponse mobile.
  • Le cadre actuel est basé sur le CRUD (créer, lire, mettre à jour, supprimer) et le modèle de recherche.

Que pouvez-vous faire avec les API Web Magento ?

Les API aident divers modules à communiquer entre eux. Ils peuvent être utilisés pour effectuer un large éventail de tâches. Par exemple:

  • Vous pouvez créer des boutiques en ligne à l'aide de Magento et les connecter à un système physique tel que POS (point de vente) pour contrôler l'inventaire à l'échelle mondiale.
  • S'intègre facilement aux systèmes backend CRM (Gestion de la relation client) ou ERP (Enterprise Resource Planning) tels que Salesforce, Microsoft Dynamics ou d'autres logiciels solides
  • Il aide à se connecter avec le CMS (Content Management System)
  • Vous pouvez également créer des widgets JavaScript sur le backend Magento (panneau d'administration) ou la vitrine Magento

Premiers pas : avec l'API Rest de Magento 2

Pour créer un rôle de service Web dans Magento 2, suivez ces étapes simples :

1.Connectez-vous au panneau d'administration de Magento 2.

2.Allez dans Système >> Rôles d'utilisateur et cliquez sur le bouton Ajouter un nouveau rôle .

Premiers pas avec les API Web Magento | Blog Mageworx Magento

3. Entrez le nom du rôle .

Premiers pas avec les API Web Magento | Blog Mageworx Magento

4. Dans le champ Votre mot de passe, saisissez le mot de passe actuel de votre administrateur Magento 2.

Premiers pas avec les API Web Magento | Blog Mageworx Magento

5.Sur le côté gauche, cliquez sur Ressources de rôle. Sous Accès aux ressources, sélectionnez uniquement ce qui est requis pour votre service Web.

Premiers pas avec les API Web Magento | Blog Mageworx Magento

6. Une fois terminé, cliquez sur Enregistrer le rôle.

Créer un utilisateur de service Web dans Magento 2

Créez un nouvel utilisateur pour le rôle nouvellement créé en suivant ces étapes :

1. Allez dans Système >> Tous les utilisateurs, puis cliquez sur Ajouter un nouvel utilisateur .

Premiers pas avec les API Web Magento | Blog Mageworx Magento

2.Saisissez les informations requises, notamment Nom d'utilisateur , Prénom et Nom , E- mail et Mot de passe .

Premiers pas avec les API Web Magento | Blog Mageworx Magento

3. Sur le côté gauche, cliquez sur Rôle d'utilisateur , puis sélectionnez le rôle nouvellement créé. Une fois terminé, cliquez sur le bouton Enregistrer l'utilisateur .

Premiers pas avec les API Web Magento | Blog Mageworx Magento

Authentification API REST Magento 2

Ici, je vais authentifier l'API REST via la méthode d'authentification par jeton. Cela implique de transmettre un nom d'utilisateur et un mot de passe lors de la connexion initiale et de recevoir un jeton qui sera enregistré dans une variable pour les appels ultérieurs.

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

Remarque : Le nom d'utilisateur et le mot de passe sont utilisés à titre d'exemple.

Obtenir des modules à l'aide de l'API REST dans Magento 2

Vous pouvez récupérer des données à l'aide de l'API REST de Magento 2. Voici une liste complète des API REST pour Magento EE et 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); ?>

Dans le code ci-dessus, j'ai déjà passé le jeton (qui a été récupéré plus tôt) avec l'URL de l'API pour obtenir tous les modules installés sur le magasin Magento 2.

Voici le code complet.

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

Utiliser les services SOAP

Avant d'aborder les services SOAP, il est important de connaître les conventions de nommage de Magento :

  • Vous devez utiliser le CamelCase pour les services de nommage. Par exemple, MonPremierModule
  • La chaîne "Service" est omise, ce qui signifie que vous ne pouvez pas l'utiliser.
  • Le préfixe "Magento" et le suffixe "Interface" sont également escaladés.
  • Si votre nom de 'service' est le même que le nom de 'module', le nom du module sera omis.

Tour d'horizon des mises à jour de MageWorx | Blog de MageWorx

Alors, assurez-vous de garder ces points à l'esprit.

Services SOAP―Authentification à l'aide de Magento 2

Les ressources SOAP sont accessibles à l'aide de jetons d'accès OAuth sur HTTP. L'authentification OAuth est similaire à la méthode des jetons mais fournit un arrangement plus complexe. Les jetons d'accès sont des chaînes qui représentent une autorisation d'accès délivrée au client.

Voici le script PHP qui explique comment obtenir un jeton d'accès :

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

Derniers mots

Cet article décrit les bases des API Web Magento, mais vous pouvez en apprendre beaucoup plus. Si vous souhaitez mieux comprendre l'utilisation de l'API Magento 2, vous devez explorer la manière dont les méthodes sont intégrées à Magento 2 et aux extensions tierces. Vous devez également comprendre comment transmettre les informations au système requis.

Alors c'est tout!

Pour profiter d'un hébergement Magento plus rapide en toute tranquillité, consultez cet essai gratuit de 3 jours sur DigitalOcean, Vultr et Linode.