Cómo debuggear un webservice hecho con PHP

Cómo debuggear un webservice hecho con PHP

Cómo hacer para...
Un WebService no es, en escencia, muy diferente de otro tipo de aplicación web, sin embargo, existen ciertas particularidades que lo hacen ligeramente más dificultoso a la hora de afinar los detalles. Por qué es complejo debuggear un WebService La primera fuente de complejidad reside en el hecho de que un servicio web no está pensado para ser accedido a través de un navegador web (A diferencia de una aplicación común). Esto implica que será necesario contar con algún mecanismo que simule un consumidor (El cual, cuando esté implementado el servicio, será otra aplicación). Cómo simular una petición a un WebService Una herramienta muy útil para esto es cURL. A través de cURL podemos generar peticiones HTTP tan complejas como se requiera y, de ese modo, simular una interacción real.…
Leer más
Cómo autenticar usuarios en WebServices SOAP

Cómo autenticar usuarios en WebServices SOAP

Cómo hacer para...
Muchas organizaciones (Especialmente gubernamentales) optan por exponer sus servicios web mediante el protocolo SOAP. Para hacer uso de dichos servicios es necesario consumirlos. Existen algunas ocasiones en las que no basta con conocer la URL del servicio, también es necesario realizar algún tipo de autenticación para obtener el resultado buscado. Autenticación HTTP en WebServices SOAP El método más simple de autenticación es el propio de HTTP. Si este es el caso, basta con generar una URL del estilo http://usuario@password:dominio/web_service para poder acceder. El principal problema de este método es su poca seguridad, ya que las credenciales viajan en cada pedido, por lo tanto, es bastante poco frecuente su uso en servicios web. En aplicaciones web normales podrías llegar a encontrártelo (o incluso podrías querer implementarlo). API-Key en WebServices SOAP Una…
Leer más
Cómo enviar XML a un WebService con PHP

Cómo enviar XML a un WebService con PHP

Cómo hacer para...
Para empezar, debemos responder una pregunta escencial: ¿se trata de un WebService de tipo SOAP o uno de tipo REST? ¡La forma de enviarlo en uno u otro caso será muy diferente! Otra historia es cómo recibir XML a través de WebServices desarrollados usando PHP... tema para otro post :) Cómo enviar XML a un WebService SOAP con PHP Como siempre, para el caso de que se trate de un webservice de tipo SOAP, usaremos la clase SOAPClient Tomemos como ejemplo este Servicio Web que tiene un solo método disponible (CustomerSearch), el cual recibe XML y devuelve XML. Tenemos dos alternativas para generar el XML que queremos enviar: Escribirlo explícitamente (o "a mano")Usar la clase SimpleXMLElement Si aún estás en dudas, no dudes más: usa la clase, te ahorrará una gran cantidad de…
Leer más
Cómo exponer un WebService REST con PHP

Cómo exponer un WebService REST con PHP

Cómo hacer para...
¿Qué es un WebService? Ya en el artículo sobre cliente REST di una pequeña definición de un WebService, por si no lo leíste te lo cuento: Un WebService es una pequeña aplicación web diseñada para interactuar con otras aplicaciones (en lugar de hacerlo con personas). Las dos aplicaciones que se comunican toman el rol de: Servidor: quien expone el servicio Cliente: quien lo consume ¿Qué es REST? REST es un protocolo de intercambio de información basado en HTTP. ¿Cómo se implementa en PHP? Los servicios web basados en REST suelen ser mucho más fáciles de crear (y consumir) que los basados en SOAP. De hecho, cualquier aplicación PHP que hayas hecho podría ser un WebService REST! (Bueno… tal vez no uno muy útil, pero eso es otro tema :)). Te muestro un…
Leer más
Cómo exponer un WebService SOAP con PHP

Cómo exponer un WebService SOAP con PHP

Cómo hacer para...
¿Qué es un WebService? Ya en el artículo sobre cliente SOAP di una pequeña definición de un WebService (Una más exhaustiva está en el curso de WebServices con PHP), por si no lo leíste te lo cuento: Un WebService es una pequeña aplicación web diseñada para interactuar con otras aplicaciones (en lugar de hacerlo con personas). Las dos aplicaciones que se comunican toman el rol de: Servidor: quien expone el servicio Cliente: quien lo consume ¿Qué es SOAP? SOAP es un protocolo de intercambio de información basado en XML. ¿Cómo se implementa en PHP? Ahora que estamos claros con las definiciones veamos un ejemplo: server.php: <?php class MiClase { public function saludar() { return 'Hola ' . func_get_args()[0] . PHP_EOL; } } try { $server = new SoapServer( null, [ 'uri'=> 'http://localhost:8080/soap_server.php',…
Leer más

Cómo consumir un WebService REST con PHP

Cómo hacer para...
Un poco de background como para asegurarnos de que hablamos de lo mismo Qué es un webservice Un webservice (o servicio web) es una forma de integrar aplicaciones web. Básicamente se trata de un servidor que expone parte de su funcionalidad para que sus clientes (que generalmente son otros servidores de diferentes aplicaciones) puedan utilizarlas. Las principales ventajas de usar web services son: La posibilidad de valernos de la capacidad instalada (¡y mantenida!) por tercerosLa facilidad para extender la funcionalidad de nuestra aplicación (Basta con realizar las llamadas al servicio web que deseamos) La principal desventaja de usar este enfoque es que dependemos de servicios de terceros que, salvo en casos muy puntuales, no podemos controlar. Ejemplos de webservices: Autenticación de usuarios vía Facebook, Google, Twitter, etc...Generación de mapas en…
Leer más
Cómo consumir un WebService SOAP con PHP

Cómo consumir un WebService SOAP con PHP

Cómo hacer para...
Qué son los WebServices Los WebServices son un mecanismo muy útil para integrar aplicaciones a través del protocolo HTTP, y de ese modo, aprovechar las capacidades de terceros dentro de nuestras propias aplicaciones. Un ejemplo muy común es de las pasarelas de pago, como ser PayPal o MercadoPago. Se basan siempre en la existencia de dos procesos: El cliente (Consumidor)El servidor (Productor) A nivel técnico existen dos operaciones que pueden realizarse a través de WebServices: ConsumirlosExponerlos Uno de los protocolos que pueden utilizar los WebServices es SOAP (Otro muy común es REST). Consumirlos usando PHP es bastante simple, para ello se utiliza la clase SoapClient. Cómo obtener la localización del visitante usando su IP Para este ejemplo usaremos el WebService de cdyne.com para obtener información geográfica en base a la IP buscada. <?php $url = "http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl";…
Leer más