Crear un webservice con nuSoap y consumirlo con Flex
Leyendo un post en MIF sobre Webservices y .net me entro la curiosidad y me puse a experimentar con servicios web basados en PHP y nuSoap. La experiencia fue muy grata ya que en unos minutos tenía creado un servicio.
Lo primero que debemos hacer es bajarnos la última versión de nuSoap y copiarla en nuestro servidor. En mi caso cree una carpeta llamada webservices para alojar los servicios y dentro de esta otra llamada nuSoap donde incluí todas las clases que previamente había descargado.
Una vez que tenemos las clases en nuestro servidor es hora de crear el servicio web. Para ello creamos un fichero llamado HolaMundo.php e incluimos el siguiente código:
< ?php
require_once('nusoap/nusoap.php');
$server = new soap_server;
function HolaMundo ($nombre) {
return "Hola ".$nombre;
}
$server = new soap_server;
$ns="http://localhost:9999/ws/HolaMundo";
$server->configurewsdl('ApplicationServices',$ns);
$server->wsdl->schematargetnamespace=$ns;
$server->register('HolaMundo',
array('nombre' => 'xsd:string'),
array('return' => 'xsd:string'),
$ns);
if (isset($HTTP_RAW_POST_DATA)) {
$input = $HTTP_RAW_POST_DATA;
}
else {
$input = implode("\r\n", file('php://input'));
}
$server->service($input);
exit;
?>Como vemos lo que hacemos es crear una instancia de la clase soap_server , asignamos el namespace del webservice, configuramos el WSDL y registramos el método HolaMundo indicando los parámetros de entrada y salida así como el tipo de cada uno de estos.
Una vez hecho esto ejecutamos el servicio web desde nuestro navegador y si todo ha ido bien nos aparecerá una pantalla como esta:

Por el lado de Flex el ejemplosería algo así (bastante similar al excelente articulo de MIF
)
< ?xml version="1.0" encoding="utf-8"?>
< ![CDATA[
import mx.controls.Alert;
private function ok():void {
Alert.show(ws.HolaMundo.lastResult);
}
]]>
Aquí lo que hemos hecho es crear un campo de entrada, un botón y hemos instanciado nuestro webservice de modo que al pulsar sobre el botón (o al hacer enter en el campo de texto) invocamos el método HolaMundo de nuestro webService pasando como parámetro el texto del campo de introducción.
Como veis la creación y uso de los webservices en flex se hace de lo más sencillo ![]()
Post a Comment