Diferencia entre revisiones de «ManuelRomero/DAW/dwes/serviciosWebSoap»

De WikiEducator
Saltar a: navegación, buscar
(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
  1. 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.
 * */
 
 
?>