Créer une API personnalisée dans Magento deuxième partie

Dans cette série, nous discutons des API personnalisées dans Magento. 

Dans la première partie, nous avons créé un module personnalisé complet pour implémenter l'API personnalisée, dans lequel nous avons créé les fichiers requis pour brancher les API personnalisées fournies par notre module.. 

Dans cette deuxième et dernière partie, nous allons passer en revue la section back-end pour montrer comment utiliser les API..

Récapitulation rapide

Faisons un bref récapitulatif de la première partie. Voici la liste des fichiers que nous avons déjà créés:

  • app / etc / modules / Envato_All.xml: c'est un fichier utilisé pour activer notre module personnalisé.
  • app / code / local / Envato / Customapimodule / etc / config.xml: c'est un fichier de configuration de module.
  • app / code / local / Envato / Customapimodule / etc / api.xml: C'est un fichier qui déclare les API fournies par notre module..
  • app / code / local / Envato / Customapimodule / etc / wsdl.xml: dans ce fichier, nous allons définir les méthodes de l'API conformément à la convention de WSDL..
  • app / code / local / Envato / Customapimodule / Helper / Data.php: c'est un fichier utilisé par le système de traduction de Magento.
  • app / code / local / Envato / Customapimodule / Model / Product / Api.php: Il s'agit d'un fichier de modèle qui implémente la logique de nos méthodes d'API..
  • app / code / local / Envato / Customapimodule / Modèle / Produit / Api / V2.php: Il s'agit d'un fichier prenant en charge l'API v2 de Magento..

De plus, si vous avez déjà activé notre module personnalisé, vous devriez voir que notre méthode d’API "customapimoduleProductList" est répertoriée avec les autres API lorsque vous visitez la page http: // yourmagentostore / api / v2_soap? Wsdl = 1. API disponibles dans Magento.

Magento prend en charge les "rôles API" et les "utilisateurs d'API". Nous avons besoin de «rôles d’API», car vous ne voulez pas permettre à l’utilisateur d’accéder à chacune des API de Magento. Les "rôles API" sont utilisés pour créer des rôles avec des autorisations d'accès limitées aux ressources de l'API.. 

Par exemple, vous pouvez créer un rôle qui n'autorise qu'un accès en lecture seule aux API "Product Listing". D'autre part, vous pouvez créer un rôle permettant la modification du catalogue. Il ne sera attribué qu'aux utilisateurs "autorisés".!

Configurer "utilisateur API" et "rôle API" à partir du back-end

Dans cette section, nous allons créer une démonstration "Rôle API" et "Utilisateur API". Nous les utiliserons plus tard pour utiliser les API personnalisées fournies par notre module. Rendez-vous au back-end Magento!

Configurer un rôle d'API

Aller à Système> Services Web> (SOAP / XML-RPC) Rôles. Cliquer sur Ajouter un nouveau rôle pour créer un nouveau rôle. Sous le Informations sur le rôle onglet, je suis entré "Rôle SOAP de démonstration" dans le Nom de rôle champ.

Ensuite, sous le Rôle Ressources onglet, vous verrez les différentes ressources avec des cases à cocher. Clique sur le Produits> Fiche produit case à cocher. Cela signifie que "Demo SOAP Role" peut uniquement accéder aux API de ressources "Product data". Clique sur le Enregistrer le rôle bouton pour enregistrer les informations de rôle.

Configurer un utilisateur d'API

Créons maintenant l’utilisateur de l’API et affectons le "rôle SOAP de démonstration" à cet utilisateur. Aller à Système> Services Web> Utilisateurs (SOAP / XML-RPC). Cliquer sur Ajouter un nouvel utilisateur créer un nouvel utilisateur. Sous le informations utilisateur onglet, s'il vous plaît remplir les informations requises.

En outre, sous la Rôle d'utilisateur onglet sélectionner le Rôle SOAP de démonstration bouton radio. Clique sur le Enregistrer l'utilisateur bouton pour enregistrer les informations utilisateur.

C'est donc ça: nous avons configuré le rôle et l'utilisateur requis pour accéder aux API Magento.!

Comment consommer l'API Magento

Dans cette section, nous verrons comment appeler les API Magento. Sous la racine de votre document, créez un exemple de fichier PHP et remplissez-le avec le contenu suivant.

login ('soapuser', 'soapuser'); $ result = $ client -> customapimoduleProductList ($ session); $ client -> endSession ($ session); écho '
'; print_r ($ result); // v1 appelle $ client = new SoapClient ('http://www.yourmagentostore.com/api/soap/?wsdl=1'); $ session = $ client -> login ('soapuser', 'soapuser'); $ resultat = $ client -> call ($ session, 'product.list', array (array ())); $ client -> endSession ($ session); écho '
'; print_r ($ result);

Remplacez "http://www.yourmagentostore.com" par l'URL de votre magasin Magento. Comme je l'ai mentionné précédemment, Magento prend en charge deux versions des API, v1 et v2. Dans cet exemple, j'ai montré à la fois.

En mode v2 API, nous créons d’abord une nouvelle instance de la classe "SoapClient". Ensuite, nous appelons la méthode "login" pour vous connecter à la boutique Magento. Nous devrons bien sûr fournir le nom d'utilisateur et le mot de passe de "l'utilisateur API" créé dans la section précédente. Enfin, nous appelons la méthode "customapimoduleProductList" pour récupérer la liste des produits! le $ session variable est transmise en tant que paramètre d'entrée à la méthode pour revendiquer l'authenticité de la méthode. Il est important de noter ici que "customapimoduleProduct" est le préfixe de la ressource et "list" le nom de la méthode..

En mode v1 API, la seule partie différente est l’appel de la méthode API. Nous utilisons une méthode "call" générique, dans laquelle un "nom de méthode" et d'autres paramètres sont transmis en tant qu'arguments. Comme vous pouvez le constater, le "produit" est utilisé comme préfixe de ressource et "liste" est le nom de la méthode.!

Conclusion

Alors ça résume la série! Maintenant, vous devriez vous sentir à l'aise avec les API Magento et vous pouvez créer des API personnalisées selon vos besoins! Ne hésitez pas à tirer vos suggestions et commentaires!