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:
webservices.gif

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.

Necesita tener instalado flash player 8

Como veis la creación y uso de los webservices en flex se hace de lo más sencillo ;)

Comments

  1. pablo wrote:

    Yo copie tu ejemplo y me funciono ejecutandolo del flex, pero a la hora de querer ejecutar la aplicacion creada por flex en otro equipo no funcionao al quererlo subir a un servidor… es como si la aplicacion cliente grabara un camino y solo de la ubicacion original se pueda comunicar con el webservice

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*