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

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;

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO