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 14:36 4 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. * */ ?>