Web Service Ejemplo


Cualquier aplicación puede tener componentes de Web Service.

La creación de Web Service es independiente del tipo de lenguaje de programación.

En este capítulo presentaremos cómo crear un Web Service utilizando la extensión SOAP de PHP.

SOAP tiene dos modos de operación: NO-WSDL y WSDL.

  • Modo NO-WSDL:Utiliza parámetros para pasar la información que se va a utilizar.
  • Modo WSDL:Utiliza el nombre del archivo WSDL como parámetro y extrae la información necesaria para el servicio desde el WSDL.

Un ejemplo: PHP Web Service

Antes de comenzar con el ejemplo, necesitamos verificar si PHP tiene instalada la extensión SOAP. Al revisar phpinfo, si aparece la siguiente información, indica que la extensión SOAP ya está instalada:

En este ejemplo, usaremos PHP SOAP para crear un Web Service simple.

ServidorServer.phpEl código del archivo es el siguiente:

<?php 
// SiteInfo 类用于处理请求
Class SiteInfo
{
    /**
     *    返回网站名称
     *    @return string 
     *
     */
    public function getName(){
        return "Ejemplo";
    }

    public function getUrl(){
        return "www.example.com";
    }
}

// 创建 SoapServer 对象
$s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php"));

// 导出 SiteInfo 类中的全部函数
$s->setClass("SiteInfo");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();
?>

ClienteClient.phpEl código del archivo es el siguiente:

<?php
try{
  // non-wsdl方式调用web service
  // 创建 SoapClient 对象
  $soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php'));
  // 调用函数 
  $result1 = $soap->getName();
  $result2 = $soap->__soapCall("getUrl",array());
  echo $result1."<br/>";
  echo $result2;
} catch(SoapFault $e){
  echo $e->getMessage();
}catch(Exception $e){
  echo $e->getMessage();
}

En este momento, si accedemos a http://localhost/soap/Client.php, la salida es la siguiente:

Otras extensiones