11-enero-2013
admin

Crear un Web Service en PHP utilizando NUSOAP

¿Que es NuSOAP?
NuSOAP es un kit de herramientas (ToolKit) para desarrollar Web Services bajo el lenguaje PHP. Está compuesto por una serie de clases que nos harán mucho más fácil el desarrollo de Web Services. Provee soporte para el desarrollo de clientes (aquellos que consumen los Web Services) y de servidores (aquellos que los proveen). NuSOAP está basado en SOAP 1.1, WSDL 1.1 y HTTP 1.0/1.1

¿NuSOAP es el único soporte para Web Services en PHP?
No, no es el único, existen otros, pero es uno de los que están en una fase de desarrollo mucho más avanzada. Sin ir más lejos, PHP a partir de su versión 5 comienza a dar soporte para SOAP, pero aún está en fase experimental.

¿Por qué NuSOAP y no otro?
– Está en una fase madura de desarrollo.
– No necesita módulos adicionales.
– Es muy fácil su instalación y uso .

¿Cómo instalo NuSOAP?
La instalación es bastante sencilla, sólo basta ir a la pagina en sourceforge de NuSOAP http://sourceforge.net/projects/nusoap/ y bajar el archivo comprimido (es un .zip).
Lo descomprimimos en un directorio de nuestro servidor web (como puede ser /lib que es el directorio por default), y listo, ya podemos hacer uso de NuSOAP.

Ejemplo de uso

1 – Implementar la clase con contendrá las funciones que se desean utilizar. Archivo calculadora.php


    function calculadora($x, $y, $operacion){
		if($operacion == "suma")
			return $x + $y;
		else if($operacion == "suma")
			return $x + $y;
		else if($operacion == "resta")
			return $x - $y;
		else if($operacion == "multiplica")
			return $x * $y;
		else if($operacion == "divide")
			return $x / $y;
		return 0;
    }
?>

2 – Implementar el servicio web. Archivo servicio.php


	require_once('lib/nusoap.php');
	require_once('calculadora.php');
	 
	$server = new nusoap_server();
	$server->register('calculadora');
	 
	$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
	$server->service($HTTP_RAW_POST_DATA);
?>

Para probar, ver que no da errores: http://disastercode.com.es/ws/servicio.php

3 – Implementar un cliente de prueba. Archivo cliente.php


	require_once('lib/nusoap.php');
	$cliente = new nusoap_client('http://disastercode.com.es/ws/servicio.php');
	$resultado = $cliente->call('calculadora', array('x' => '3', 'y' => 4, 'operacion' => 'multiplica'));
	echo $resultado;
?>

Para probarlo: http://disastercode.com.es/ws/cliente.php

Fuente
Introduction to NuSOAP

8 Comentarios

  • Me gusto este ejemplo, ideal para los que estamos empezando en el mundo de los web services

  • hola, lo hago tal y como esta en el ejemplo, pero al momento de inicar el cliente me manda un error

  • qué error te da?

  • Gracias por tu aportación, es muy buena, pero fijate que cuando mando a traer el cliente, se queda actualizando y no muestra nada… qué sera?. nuevamente gracias! 🙂

    • Has puesto bien la url que apunta al servicio web? Si se queda intentando conectar tiene que terminar dándote un timeout. Eso es que no consigue conectar al servidor.
      O bien está mal la url o bien por algún motivo desde el lugar donde estas ejecutando el cliente no consigues acceder al servicio.

      • Hola, pues estoy ejecutándolo mediante localhost… ¿será el motivo?. Bonito día y gracias mil 🙂

        • Debería funcionarte.

          para localhost con el puerto 80 la url en este ejemplo sería algo así:

          $cliente = new nusoap_client(‘http://localhost/ws/servicio.php’);

          Si ejecutas en tu navegador: http://localhost/ws/servicio.php te da algún error?

  • Disculpa la tardanza, si de hecho así tengo la ruta, pero se sigue quedando en la actualizada…

Dejar un comentario a davres

Categorias

Linkedin