martes, 14 de diciembre de 2010

CakePhp: Webservices con NuSoap


Requisitos:

  • Windows XP, o Linux
  • Apache 2 instalado
  • PHP 5 instalado
  • CakePhp 1.2, instalado
  • MySQL 5, opcional

Objetivo:

Implementar un mecanismo para publicar y/o consumir servicios web.

Instalación:

  1. Copiar esta version hackeada de nusoap a /vendors/nusoap/nusoap.php
  2. Copiar este controlador de los servicios web a /vendors/nusoap/web_services_controller.php
  3. Copiar este componente a /app/controllers/components/soap.php

Uso:

Creando el Servidor

Los servicios estarán publicados en el url http://my_host/my_cake/wsuserservices
(escriba la url en el web browser para ver la información del servicio web)

En el controlador...

App::import('Vendor', 'nusoap/web_services_controller');

class WsuserservicesController extends WebServicesController {
var $name = 'Wsuserservices';
var $uses = null;
var $api = array(
'add'=> array (
'doc' => 'crea un usuario',
'input' => array(
'id' => 'xsd:integer',
'name' => 'xsd:string'
)
),
'name' => array(
'doc' => 'obtiene el nombre de un usuario',
'input' => array(
'id' => 'xsd:integer'
)
'output' => array(
'return' => 'xsd:string'
)
)
);

function add($id, $name) {
$data['User']['id'] = $id;
$data['User']['name'] = $name;
$this->User->save($data);
}

function name($id) {
$this->User->id=$id;
$data=$this->User->read();
return $data[0]['User']['name'];
}
}

Creando el cliente

En el controlador...

class WsclientservicesController extends AppController {
var $name = 'Wsclientservices';
var $components = array('Soap');
var $uses = null;

function getUserName() {
$url = "http://my_host/my_cake/wsuserservices";
$func = 'name';
$param=array(’id’=>’34′);
$name=$this->soap->client($url,$func,$param);
$this->set(’name’,$name);
}

Listo!!!

Enlace Original:

-
http://rossoft.wordpress.com/2006/02/16/webservices-in-cakephp-other-approach/

No hay comentarios:

Publicar un comentario

Las + Populares