/ / Magento SOAP v1 vs v2 performance - performance, api, magento, soap

Magento SOAP v1 vs v2 performance - performance, api, magento, soap

Je suis en train d'utiliser VB.NET pour travailler avec l'API Magento. J'utilisais SOAP v1 avec succès jusqu'à ce que je rencontre un appel nécessitant un tableau associatif. Après un jour ou deux d'absence de chance, j'ai décidé d'essayer la version 2 qui contient tous les objets dont j'ai besoin. v2 fonctionne mais est très, très lent. Pour mettre à jour un inventaire d'articles en stock, il fallait environ une minute et demie pour se connecter et effectuer la mise à jour, au lieu de moins de 10 secondes avec v1. Cela m'a rappelé pourquoi j'ai choisi v1 en premier lieu.

Ma question est de savoir s’il est possible d’améliorer laperformance sur v2. Je ne peux pas imaginer que c’est dans la mesure où j’en ai besoin mais j’ai pensé que je demanderais J'ai déjà activé la mise en cache. L'alternative consistant à faire en sorte que v1 accepte un tableau associatif semble être un défi, si possible.

Réponses:

22 pour la réponse № 1

Il y a beaucoup de raisons pour lesquelles une demande WSDL peut prendre beaucoup de temps, mais la première chose que je vérifie, ce sont les paramètres de la WSDL cache. Lorsque vous effectuez un appel d’API dans Magento, Magento utilise PHP SoapServer objet. le SoapServer object doit extraire son propre fichier WSDL pour fonctionner, et la génération et l'extraction de ce fichier peuvent prendre beaucoup de temps.

Aller à

System -> Configuration -> Magento Core API -> General Settings

et recherchez "Activer le cache WSDL". Définissez ce paramètre sur Oui et vous constaterez une amélioration des performances de l’API.

Ce paramètre n’existe peut-être pas dans votre version de Magento. Si tel est le cas, cela pourrait vous intéresser. Mercury API extension (créée et vendue par moi-même) avec des améliorations de l’API incluant cette fonctionnalité pour les anciennes versions de Magento. Si vous n’avez pas de budget pour une extension, Mage_Api_Model_Server_Adapter_Soap est la classe où les anciennes versions de Magento désactivent ce cache.