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
8 Comentarios
Dejar un comentario
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places
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…