crear un webservice básico con php y soap

Upload: marco-antonio-letelier

Post on 12-Oct-2015

45 views

Category:

Documents


0 download

TRANSCRIPT

CREAR UN WEBSERVICE BSICO CON PHP YSOAP

SOAPes unprotocolo de intercambio para servicios web basado en XML Para facilitarnos la vida empezaremos por descargarNuSOAP, quenos proveer de diversas clases para trabajar con este protocolo.

Ok, conNuSOAPinstalado toca crear un servidor SOAP en nuestra aplicacin. Para el ejemplo crearemos un servidor, lo llamaremosproducto.php, que si recibe una peticin donde se le pida una lista de libros devuelva tres ttulos (es un ejemplo bsico, piensa que en la realiad podras acceder a una base de datos y dar muchas ms funcionalidades).

Ok, ahora necesitas uncliente, que llamaremoscliente.php. En el constructor, el cliente recibir el url del servidor y para acceder al mtodo que nos devuelve los libros recurriremos al mtodocall(), al cual le pasaremos el nombre del mtodo del servidor al que queremos acceder ylos parmetros en forma de array. Adems, tambin controlaremos que no haya errores en la comunicacin.

Con esto ya tienesuna idea my bsica del funcionamiento de un webservice SOAP construdo con PHP. Pero claro, nos falta un archivoWSDLpara tener un webservice decente. Aunque dicho archivo puede ser escrito a mano,NuSOAP puede generarlo por tipasndole ciertos parmetros, por lo que lo ideal sera generarlo en el servidor. As que modifica tuproducto.phppara que quede tal que as:

Como ves, el cambio en es cuando llamamos a register, ya que en vez de pasarle, como antes, el mtodo en cuestin, le aadimos tambin varios argumentos para generar el WSDL:Elprimer arraynos permite definir elargumento de entrada y su tipo de datos El segundo define la funcin de retorno y su tipo de datos urn:productoes ladefinicin del namespace urn:producto#getProdes dondedefinimos la accin SOAP Luego viene eltipo de llamada,que puede serrpc, como en el ejemplo, odocument Tras estodefinimos el valor del atributeuse, que puede serencodedoliteral Finalmente viene unadescripcin de qu hace el mtodoal que llamamos

Ahora basta con que en el navegador accedas aproducto.php?wsdly vers el WSDL generado. Ya puedes copiarlo y aadirlo a tu directorio web (crea un archivo y llmalo, por ejemplo,libros.wsdl). Para que el cliente lo utilice debes modificar el cdigo, yen el constructor, en vez del url le pasas el nombre del archivo, de forma que quede como en el ejemplo:

1$client = new nusoap_client("libros.wsdl", true);

Ahora s, ya tienes montadoun pequeo servicio web. El ejemplo es simpln, pero piensa en todas las funcionalidades que podras incorporarle.