2013-01-11 5 views
7

Sono in procinto di utilizzare VB.NET per lavorare con l'API Magento. Stavo usando SOAP v1 con successo fino a quando non mi sono imbattuto in una chiamata che ha bisogno di un array associativo. Dopo un giorno o giù di lì, ho deciso di provare v2 che ha tutti gli oggetti di cui ho bisogno. v2 funziona ma è molto, molto lento. Per aggiornare un inventario di articoli in stock ci sono voluti circa un minuto e mezzo per accedere e fare l'aggiornamento anziché con meno di 10 secondi con v1. Questo mi ha ricordato perché ho scelto v1 in primo luogo.Prestazioni Magento SOAP v1 vs. v2

La mia domanda è se c'è comunque un miglioramento delle prestazioni in v2. Non riesco a immaginare che ci sia nella misura in cui ne ho bisogno ma ho pensato di chiederlo. Ho già abilitato il caching. L'alternativa di ottenere v1 per accettare un array associativo sembra essere una sfida, se possibile.

risposta

22

Ci sono molte ragioni per cui una richiesta WSDL potrebbe richiedere molto tempo, ma la prima cosa che controllo sono le impostazioni per la cache WSDL. Quando effettui una chiamata API in Magento, Magento utilizza l'oggetto SoapServer di PHP. L'oggetto SoapServer deve recuperare il proprio file WSDL per funzionare e la generazione e il recupero di questo file possono richiedere molto tempo.

Vai

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

e cercare "Enable WSDL Cache". Impostalo su Sì e vedrai alcuni miglioramenti delle prestazioni dell'API.

Questa impostazione potrebbe non esistere nella versione di Magento - se questo è il caso potresti essere interessato all'estensione Mercury API (creata e venduta da me) con miglioramenti API che includono questa funzionalità per le versioni precedenti di Magento. Se non disponi di un budget per un'estensione, Mage_Api_Model_Server_Adapter_Soap è la classe in cui versioni precedenti di Magento disattivano questa cache.

+0

avevi ragione. Ha lasciato il tempo per circa lo stesso di v1. In realtà ho trovato quell'impostazione nelle ricerche, ma non l'ho mai provato :(Oh beh, ora lo so Grazie ancora – gwgeller

+0

Mi piace come sembra essere leggero v1 Sono passato alla v2 a causa di un problema che sto avendo con VB.NET Penso che potrei fare un'altra domanda se vuoi tenerlo d'occhio;) – gwgeller

+0

Sono curioso di sapere se questa cache viene cancellata quando usi la funzione di cancellazione della cache di admin. Immagino che avresti bisogno di farlo quando crei la tua API con la v2. Qualche idea su questo Mr. Storm? –