On the webservices road
Siguiendo con la ruta de los servicios web y enlazando con mi interés por aprender de una vez por todas Python voy a poner un pequeño ejemplo de como utilizar SOAP con el susodicho lenguaje.
El hecho de usar Python es debido a mi nuevo interés por crear un pequeño applet para gnome (en Python como no!
) al estilo barra de búsqueda rápida. Inmediatamente cuando te planteas el realizarlo lo primero que salta a tu cabeza es el tema de los servicios web, podrÃamos usar Google, Yahoo, algún diccionario inglés-español .... el abanÃco es muy amplio. Asà que manos a la obra (coño, parezco el de BricomanÃa, dónde está la trocoladora??)
Lo primero de todo es dedicir que implementación de SOAP vamos a utilizar ya que por suerte tenemos unas pocas para elegir. En esta url podemos encontrar distintos links todos referentes al uso de SOAP con Python. Yo me he quedado con la librerÃa SOAPpy, tras leer un poco he visto que es la más utilizada, además viene perfectamentve instaladita en mi Ubuntu
.
Ahora vamos a hacer el Hello World de los servicios web con Google, para comenzar debemos visitar la web en la que Google nos ofrece acceso a sus servicios, Google Web Apis. Ahà obtendremos kit de desarrollo y un identificador (Google Key) para poder utilizar sus servicios. En el kit de desarrollo vienen varios ejemplos de uso en distintos lenguajes de programación (java,perl,visual studio .net), pero no en Python (que suerte canijo!!).
Nos da igual, lo que verdaderamente nos interesa de ese kit es el archivo WSDL (GoogleSearch.wsdl) en el que se especifican las cualidades del servicio (funciones que tenemos, sus parámetros, los resultados que devuelven, los tipos de estos resultados ...). Una vez que tengamos ya todos los ingredientes (donde está la trocoladora???) ya podemos ponernos manos a la obra.
Como os he comentado al principio todo este lio es para aprender un poquito de Python asà que en esta dirección podreis encontrar el manual que he seguido para hacer este ejemplito. Es un libro (gratuito por supesto!) fantástico, lectura obligatoria si quieres aprender un poquito de Python.
Bueno, lo dicho, aquà os presento el código tan petardo que hace rular el temita 
-
from SOAPpy import WSDL
-
-
WSDLLOCATION="./GoogleSearch.wsdl"
-
GOOGLEKEY="TU_GOOGLE_KEY_API_AQUI"
-
-
google=WSDL.Proxy(WSDLLOCATION)
-
results=google.doGoogleSearch(GOOGLEKEY,"gnome python applets",0,10,True,"",False,"","utf-8","utf-8")
-
print "Encontrados %d resultados en %f segundos" %(results.estimatedTotalResultsCount,results.searchTime)
-
print "Mostrando los 10 primeros : "
-
print "======================================================================"
-
-
for r in results.resultElements:
-
print "Titulo : %s" % r.title.encode("utf-8")
-
print "Link : %s" % r.URL.encode("utf-8")
-
print "Descripcion : %s" % r.snippet.encode("utf-8")
-
print "======================================================================"
Muy simple no? Importo la librerÃa, establezco ciertos parametrillos, creo un objeto para trabajar con el servicio web de Google, consumo el servicio doGoogleSearch y vuelco los resultados.
La salida que obtenemos es algo parecido a esto :
-
Encontrados 33500 resultados en 0.152441 segundos
-
Mostrando los 10 primeros :
-
======================================================================
-
Titulo : <b>Gnome applets</b> with <b>Python</b>
-
Link : http://www.pygtk.org/articles/applets_arturogf/
-
Descripcion : The simplest <b>applet</b> we can write can be found in the <b>gnome</b>-<b>python</b> package<br> documentation (/usr/share/doc/python2.x-gnome2/examples/<b>applet</b>/<b>applet</b>.py in <b>...</b>
-
======================================================================
-
Titulo : [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal <b>...</b>
-
Link : http://mail.gnome.org/archives/deskbar-applet-list/2005-October/msg00127.html
-
Descripcion : [Deskbar] <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>Applet</b>].<br> From: Jeff Waugh. [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: <b>...</b>
-
======================================================================
-
Titulo : [Deskbar] <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>...</b>
-
Link : http://mail.gnome.org/archives/deskbar-applet-list/2005-October/msg00118.html
-
Descripcion : [Deskbar] Re: <b>Python applets</b> [Was: <b>Gnome</b> 2.14 Module Proposal: Deskbar <b>Applet</b>].<br> From: Davyd Madeley. References:. [Deskbar] <b>Gnome</b> 2.14 Module Proposal: <b>...</b>
-
======================================================================
-
Titulo : RPM Search Götz Waschk <waschk_linux-mandrake_com>
-
Link : http://rpm.pbone.net/index.php3/stat/15/limit/14/dl/40/pakman/1564/com/G%C3%83%C6%92%C3%82%C2%B6tz%20Waschk%20%3Cwaschk_linux-mandrake_com%3E.html
-
Descripcion : <b>gnome</b>-<b>python</b>-<b>applet</b>, 2.0.0-3mdk, i586, <b>Python</b> bindings for <b>GNOME</b> Panel <b>applets</b>.<br> Mandrake 10.X. <b>gnome</b>-<b>python</b>-<b>applet</b>, 2.0.0-3mdk, i586, <b>Python</b> bindings for <b>...</b>
-
======================================================================
-
Ea! Ahà está el tio. El primer link que nos ha devuelto es el que estoy usando como tutorial para poder hacer el applet. Ya os contaré como va el tema.
Saludos y adioses!
