Mostrando entradas con la etiqueta Enabled WSDL Cache. Mostrar todas las entradas
Mostrando entradas con la etiqueta Enabled WSDL Cache. Mostrar todas las entradas

jueves, 14 de febrero de 2013

Magento: WSDL, limpiar los archivos del caché de PHP

Problema: Durante el desarrollo y exposición de Web services desde Magento usando SOAP, he tenido que prender y apagar el setting de "Enable WSDL Cache", y a veces, no actualiza los cambios realizados a las estructuras de datos definidos en los archivos wsdl.xml.

Solución: Eliminar los archivos temporales que PHP genera para el manejo de caché del archivo WSDL, así que:

Acceder a la carpeta temporal de tu servidor (linux), y eliminar los archivos temporales de wsdl:

cd /tmp
ls wsdl-* -l
rm wsdl-*

Listo, eso es todo.

Como beneficio adicional, seguramente esta acción evitará falsos errores de SOAP como:
  • Invalid API path
  • Is not a valid method
  • Resource path not callable

miércoles, 13 de febrero de 2013

Magento: SOAP V2, mejorar el tiempo de respuesta

Hay muchas razones por las que una petición a un web service usando SOAP V2 puede tomar mucho tiempo, pero la primera cosa que pienso es revisar la configuración para activar la caché en la construcción del archivo WSDL. Cuando se hace una llamada a la API de Magento, Magento usa el objecto SoapServer de PHP. El objeto SoapServer necesita obtener su propio archivo WSDL para poder funcionar, y la generación y extracción de este archivo puede consumir mucho tiempo.

La solución para esto es habilitar el manejo de caché para el archivo WSDL, que por defecto viene apagado en Magento. 


Acceder al backend de Magento, luego a System->Configuration->Magento Core API
Busca el rubro "Enabled WSDL Cache" y cámbialo a Yes.



Haciendo esto, mejorarás notablemente el tiempo de respuesta de las llamadas a la API, aclaro que esto funciona a partir de la versión 1.6 de Magento usando SOAP V2, para versiones anteriores hay una solución en este link: http://www.ivoronline.com/Coding/Languages/PHP/Tutorials/PHP - API - SOAP - Extension - Introduction.php

Este parámetro no existe en versiones anteriores a 1.6 de Magento, pero también existe una extensión comercial hecha por Alan Storm, y se llama "Mercury API Extension". Aunque también se puede mirar la clase Mage_Api_Model_Server_Adapter_Soap donde las versiones anteriores de Magento deshabilitan esta caché.

Esta solución fue tomada de Alan Storm desde Stackoverflow.com

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.