Aunque en PHP5 existe una extension para crear servicios web basados en SOAP, algunos servidores donde posiblemente alojemos nuestra aplicacion no tienen habilitada la extension y por tal motivo debemos buscar alternativas para la creacion de los webservices.
En el 2002 Dietrich Ayala escribio una libreria llamada NuSOAP que permite implementar webservices en PHP incluyendo la version 4 y 5, esta libreria es una de las mas populares en la costruccion de servicios web en PHP pues tiene soporte para diferentes versiones de SOAP, como tambien es posible crear servicios web que generen los descriptores de los webservices (WSDL) y soporte de tipos de datos, aunque la implementacion suele complicarse cuando se utilizan estas caracteristicas.
Implementaremos un webservice basado en una funcion llamada sumar de la cual crearemos el webservice y su cliente utilizando NuSOAP, a continuacion se describen los pasos :
Implementar la Funcion a Utilizar :
<?php function sumar($x, $y) { return $x + $y; } ?>
Implementar el Servicio Web :
<?php require_once('nusoap.php'); require_once('sumar.php'); $server = new nusoap_server(); $server->register('sumar'); $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?>
http://<servidor>/<ruta>/servicio.php
Implementar el Cliente :
<?php require_once('nusoap.php'); $cliente = new nusoap_client('http://<ipServidor>/<ruta>/servicio.php'); $resultado = $cliente->call('sumar', array('x' => '3', 'y' => 4)); print_r($resultado); ?>
http://<servidor>/<ruta>/cliente.php
Enlaces :
Entradas Relacionadas:
Buen dia, gracias por explicar el tema de ws en php, estoy comenznado con el, copie los codigo sugeridos y no me muestra en la pagina, podria poner los codigos o enviarmelos
gracias por sua tencion y/o ayuda
hola soy novato en estos de nusoap y quiero si me pueden ayudar en hacer una suma,resta y multiplicacion,divicio del lado tanto del servidor como del cliente…
gracias……
o darme la idea…… gracias…
se los agradesco
Estoy intentando hacer este ejercicio y me genera este error al correr servicio.php
SOAP-ENV:Clientmethod ” not defined in service
Gracias por el artículo, funcionó perfecto todo el codigo. Gracias!