Ich benutze VB.NET, um mit der Magento API zu arbeiten. Ich habe SOAP v1 erfolgreich verwendet, bis ich auf einen Aufruf stieß, der ein assoziatives Array benötigt. Nach einem Tag oder so ohne Glück entschied ich mich, v2 zu versuchen, die alle Objekte hat, die ich brauche. v2 funktioniert, ist aber sehr, sehr langsam. Um ein Lagerbestands-Inventar zu aktualisieren, dauerte es ungefähr anderthalb Minuten, um sich einzuloggen und das Update durchzuführen, im Gegensatz zu vielleicht weniger als 10 Sekunden mit v1. Das hat mich daran erinnert, warum ich v1 überhaupt gewählt habe.
Meine Frage ist, ob es trotzdem eine Verbesserung der Performance auf v2 gibt. Ich kann mir nicht vorstellen, dass es soweit ist, aber ich dachte, ich würde fragen. Ich habe bereits Caching aktiviert. Die Alternative, v1 dazu zu bringen, ein assoziatives Array zu akzeptieren, scheint, wenn möglich, eine Herausforderung zu sein.
Es gibt viele Gründe, warum eine WSDL-Anfrage lange dauern könnte. Als Erstes würde ich jedoch die Einstellungen für den WSDL -Cache überprüfen. Wenn Sie einen API-Aufruf in Magento durchführen, verwendet Magento das SoapServer
-Objekt von PHP. Das SoapServer
-Objekt muss eine eigene WSDL-Datei zum Ausführen abrufen, und das Generieren und Abrufen dieser Datei kann zeitaufwändig sein.
Gehe zu
%Vor%und suchen Sie nach "Enable WSDL Cache". Setzen Sie dies auf "Ja" und Sie sehen eine Verbesserung der API-Leistung.
Diese Einstellung ist in Ihrer Magento-Version möglicherweise nicht vorhanden - falls dies der Fall ist, könnten Sie sich für die Mercury-API Erweiterung, (erstellt und verkauft von mir) mit API-Verbesserungen, die diese Funktionalität für ältere Versionen von Magento enthalten. Wenn Sie kein Budget für eine Erweiterung haben, ist Mage_Api_Model_Server_Adapter_Soap
die Klasse, in der ältere Versionen von Magento diesen Cache deaktivieren.
Tags und Links api performance soap magento