Ya teníamos rato sin publicar algo por aquí, así que regresó con todo jaja. Esta vez algo relacionado con lo que estamos haciendo en la U, dejenme contarles rápidamente: Nos separamos en 6 grupos cada uno hizo su propio banco, y en cada fase nos calificaron diferentes cosas y la última fase es hacer la compensación instantanea entre bancos, por lo que tenemos que hacer web services y darlos a los otros bancos.
Entonces despues de mucho leer y rompernos la cabeza encontramos
NuSOAP (el link de descarga que miran ahí esta malo, busquen en files para encontrar la verdadera libreria) para PHP. Esta librería es bastante completa. Para este ejemplo yo estoy usando XAMPP y dentro de mi carpeta "htdocs" tengo una carpeta lib que contiene todos los archivos de NuSOAP.
Ejemplo del "Servidor" de Web Service:
1 | <?php require_once('lib/nusoap.php'); function hello($name) { return 'Hello, ' . $name;} $server = new soap_server; { return 'Hello, ' . $name;} $server->gt;register('hello',array('name'=>'xsd:string'),array('return'=>'xsd:string')); if(isset($HTTP_RAW_POST_DATA)) { $input = $HTTP_RAW_POST_DATA; } else { $input = implode("\r\n", file('php://input')); } $server->service($input); exit; ?> |
Una breve explicación, el servidor basícamente es un archivo que contiene código php, el cual cuando un cliente quiere usar nuestro web service, le damos el link del archivo, y el "consume" el servicio. Ahora vamos al lado del cliente, este lo vamos a hacer bastante sencillo.
Ejemplo del "Cliente" de Web Service:
1 | <?php require_once('lib/nusoap.php'); $client = new nusoap_client('http://localhost/server.php'); $result = $client->call('hello', array('name' => 'Scott')); print_r($result);?> |
Además de esto no todos los grupos trabajaron con PHP, hubieron tres grupos que desarrollaron su web service en ASP.net. Para consumir estos WS desde nuestro proyecto en PHP cambia un poco la sintaxis del cliente, como veremos a continuación:
1 | <?php
require_once('lib/nusoap.php');
$client = new nusoap_client('http://localhost/WebService.asmx?WSDL', 'wsdl');
$result = $client->call('hello', array('name' => 'Scott'));
$result = implode(',',$result);
print_r($result);
?>
|
Con eso concluimos un pequeño pero conciso ejemplo de la libreria NuSOAP. Aunque esta es mucho más poderosa y con más métodos que pueden facilitarnos el trabajo con Web Service.