Diferencia entre revisiones de «ManuelRomero/DAW/dwes/serviciosWebSoap»
De WikiEducator
(Página creada con '===Obetener el fichero wsdl=== *Tenemos una serie de métodos o funciones que queremos ofrecer a otras aplicacones web ===Fichero del servicio web=== *server.php <source lang=ph…') |
|||
Línea 45: | Línea 45: | ||
} | } | ||
} | } | ||
+ | |||
+ | ?> | ||
+ | </source> | ||
+ | *Lo que queremos es ofrecer estos métodos para que otras aplicaciones las usen | ||
+ | *Pero a priori esta interfaz de los métodos (nombre, parámetros y valor de retorno) no son conocidas por los que las quieren usar | ||
+ | *Para ello las debemos publicar es un documento WSDL. | ||
+ | *Para generar este docuemento tenemos utilidades que automatzan (a mano es algo complicado, cuando menos tedioso ). | ||
+ | *Pasos a realizar | ||
+ | #Primero debemos comentar los métodos con las directivas o marcas usados por lenguejes que generan documentación como javadoc o phpdocumetor | ||
+ | *Entre las más importantes usarmeos @param @return | ||
+ | *Nos quedará | ||
+ | <source lang=php> | ||
+ | /** | ||
+ | * Obtiene el PVP de un producto a partir de su código | ||
+ | * @param string $cod@igo | ||
+ | * @return float | ||
+ | * | ||
+ | * | ||
+ | */ | ||
+ | public function getPVP($codigo){ | ||
+ | $producto = DB::obtieneProducto($codigo); | ||
+ | return $producto->getPVP(); | ||
+ | ... | ||
+ | </source> | ||
+ | *Entre los tipos usaremos int para entero string para caracter string[] para un array o registro | ||
+ | *Una vez hecho esto procedemos a generar un fichero php para que usando WSDLDocumento se nos genere el fichero correspondiente | ||
+ | *como indican en los apuntes escribimos el fichero genera.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //serverW.php es el fichero descrito atenriormente, donde se implementan los métodos que se se ofrecen | ||
+ | require_once 'serverW.php'; | ||
+ | require_once'WSDLDocument.php'; //script que generará el fichero xml | ||
+ | |||
+ | |||
+ | //serviciow.php es el fichero que genera el objeto servidor soap | ||
+ | $accion = new WSDLDocument("serverW","http://localhost/Saop4/serviciow.php", | ||
+ | "http://localhost/Saop4"); | ||
+ | |||
+ | echo $accion->saveXML(); //Genera el en navegador el fichero xml que hay que revisar | ||
+ | /* | ||
+ | El nombre de la clase que gestionará las peticiones al servicio. | ||
+ | La URL en que se ofrece el servicio. | ||
+ | El espacio de nombres destino. | ||
+ | * */ | ||
+ | |||
?> | ?> | ||
</source> | </source> |
Revisión de 03:36 5 mar 2014
Obetener el fichero wsdl
- Tenemos una serie de métodos o funciones que queremos ofrecer a otras aplicacones web
Fichero del servicio web
- server.php
<?php require_once('DB.php'); require_once('producto.php'); class Server { /** * Obtiene el PVP de un producto a partir de su código * */ public function getPVP($codigo){ $producto = DB::obtieneProducto($codigo); return $producto->getPVP(); } /** * Devuelve un array con los códigos de todas las familias * */ public function getFamilias(){ $familias = DB::obtieneFamilias(); return $familias; } /** * Devuelve un array con los códigos de los productos de una familia * */ public function getProductosFamilia($familia){ $productos = DB::obtieneProductosFamilia($familia); return $productos; } /** * Devuelve el número de unidades que existen en una tienda de un producto * */ public function getStock($codigo, $tienda){ $unidades = DB::obtieneStock($codigo, $tienda); return $unidades; } } ?>
- Lo que queremos es ofrecer estos métodos para que otras aplicaciones las usen
- Pero a priori esta interfaz de los métodos (nombre, parámetros y valor de retorno) no son conocidas por los que las quieren usar
- Para ello las debemos publicar es un documento WSDL.
- Para generar este docuemento tenemos utilidades que automatzan (a mano es algo complicado, cuando menos tedioso ).
- Pasos a realizar
- Primero debemos comentar los métodos con las directivas o marcas usados por lenguejes que generan documentación como javadoc o phpdocumetor
- Entre las más importantes usarmeos @param @return
- Nos quedará
/** * Obtiene el PVP de un producto a partir de su código * @param string $cod@igo * @return float * * */ public function getPVP($codigo){ $producto = DB::obtieneProducto($codigo); return $producto->getPVP(); ...
- Entre los tipos usaremos int para entero string para caracter string[] para un array o registro
- Una vez hecho esto procedemos a generar un fichero php para que usando WSDLDocumento se nos genere el fichero correspondiente
- como indican en los apuntes escribimos el fichero genera.php
<?php //serverW.php es el fichero descrito atenriormente, donde se implementan los métodos que se se ofrecen require_once 'serverW.php'; require_once'WSDLDocument.php'; //script que generará el fichero xml //serviciow.php es el fichero que genera el objeto servidor soap $accion = new WSDLDocument("serverW","http://localhost/Saop4/serviciow.php", "http://localhost/Saop4"); echo $accion->saveXML(); //Genera el en navegador el fichero xml que hay que revisar /* El nombre de la clase que gestionará las peticiones al servicio. La URL en que se ofrece el servicio. El espacio de nombres destino. * */ ?>