Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Internet > XML > Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos
-Tutoriales

Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos


SOAP sobre Perl

SOAP::Lite es una implementación de SOAP para Perl. Se encuentra como módulo en el CPAN (Comprehensive Perl Archive Network). Con SOAP::Lite version 0.52 o superior podemos incorporar cualquier servicio SOAP a nuestros programas.

La instalación podemos llevarla a cabo de dos formas: bajando los módulos como ficheros comprimidos, compilándolos e instalándolos o bien de forma automática, mediante la interfaz del CPAN que posee Perl:

perl -MCPAN -e shell 
install SOAP::Lite 
quit

En cualquier caso, debemos instalar los siguientes módulos:

HeadParser 
SOAP 
SOAP::Lite 
URI 
Math::Random 

Si no queremos instalarlos uno a uno, podemos bajar una "imagen" con los módulos instalados, descomprimirla en el directorio raiz de la cuenta propia, y después, en los programas en Perl, indicar dónde están las librerías que acabamos de instalar:

use lib '.../perl'; 
use lib '.../perl/lib'; 
use SOAP::Lite; 

Veamos como ejemplo el Servicio Web de traducciones de BabelFish, programando en Perl un cliente SOAP, (usando SOAP::Lite) que acceda a este servicio remoto gratuito.

En primer lugar indicamos con el método proxy de la clase, cuál es el servidor y camino completo hasta el servicio. Con el método uri indicaremos el nombre del servicio invocado, y por último, utilizando el método de ese servicio, pasamos los parámetros (en este caso la cadena de texto a traducir y los idiomas origen y destino). El código que podría hacer esas peticiones sería:

#!/usr/bin/perl -w 
use SOAP::Lite; 

print SOAP::Lite 
       ->proxy('http://services.xmethods.net/perl/soaplite.cgi') 
       ->uri('urn:xmethodsBabelFish') 
       ->BabelFish("es_en","Hola, mundo") 
       ->result; 
1; 

Los idiomas origen y destino vienen indicados mediante abreviaturas:

Inglés, en 
Francés, fr 
Alemán, de 
Español, es 
Italiano, it 
Portugués, pt 
Ruso, ru 

AVISO:Es posible que cuando ejecutemos estos scripts, nuestra máquina se encuentre detrás de un proxy. En ese caso, debemos indicarle a Linux cuál es la forma de salir al exterior. Lo configuramos usando la variable de entorno HTTP_proxy:

export HTTP_proxy="http://www.miproxy.com:3128" 
setenv HTTP_proxy "http://www.miproxy.com:3128" 

el primer caso se utilizará cuando nuestro Shell sea el bash, mientras que el segundo, cuando sea el tcsh.

La invocación del API de Google desde Perl sería similar.

Referencia: GoogleSearch.pl

#!/usr/bin/perl -w 
use SOAP::Lite; 

my $query = "linux+programacion"; 
my $googleSearch = SOAP::Lite -> service("http://api.google.com/GoogleSearch.wsdl"); 
my $result = $googleSearch -> doGoogleSearch( 
    "iwnUXUtHj3bteg5FWfBJDwui3SPeB+iy",     # Clave de acceso al API de Google 
    $query,                                 # Palabras clave de búsqueda 
    0,                                      # Indice del primer resultado mostrado 
    10,                                     # Numero de resultados obtenidos 
    "false",                                # Filtro 
    '',                                     # Restricción 
    "false",                                # Búsqueda Segura 
    '',                                     # lr 
    'latin1',                               # ie 
    'latin1'                                # oe 
); 

print $result->{resultElements}->[0]->{title}; 
print "\n"; 
print $result->{resultElements}->[0]->{URL}; 
print "\n"; 

1;
 
Patrocinados
 

Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

diseño y desarrollo web por Color Vivo Internet. Un proyecto de los Hermanos Carrero