La arquitectura de servicios web (‘Web Services’) se ha hecho muy popular en los últimos años. Es la manera más simple de poder comunicarte con alguna funcionalidad de la que necesitas extraer alguna información en el Internet. Aquí te mostramos como Groovy te facilita el leer y procesar estos servicios fácilmente.

En su manera más sencilla, los servicios web simplemente son llamadas a servidores que responden en formato XML. Los protocolos en general son los mismos que utilizarías para obtener información en HTML, pero con la diferencia de que lo que recibes es procesado por el programa que lo está llamando.

Groovy te ofrece la clase URL del paquete java.net el cual llames simplemente de la siguiente manera:


def resultados = new URL("http://localhost:9090/teqi/webSearch/list").text

La variable resultados contiene el contenido de la pagina ’webSearch/list’ que el servidor nos mando. Y eso es todo lo que necesitas para hacer una llamada a un servidor web, una sola línea:

Contenido HTMLContenido HTML

Para expandir la funcionalidad y hacerle en realidad que se llame de servicios web, necesitamos procesar un resultado en XML y no en HTML. Cambiando el código de esta página, y con la misma llamada, ahora recibimos el XML que necesitamos:

Llamando XML con GroovyLlamando XML con Groovy

Ahora para procesar el XML simplemente usamos la clase XmlSlurper (incluida en las librerías Groovy) la cual nos da un objeto con todos los componentes del XML recibido:


def xml = new XmlSlurper().parseText(resultados)

Y de aquí podemos llamar los elementos directamente.
En este caso, el XML contiene un elemento el cual contiene los elementos y :

Resultado de llamada XMLResultado de llamada XML

Simplemente obtenemos cada elemento llamándolo de la siguiente manera: xml.webSearch.clickUrl y xml.webSearch.mimeType respectivamente, lo cual nos da el resultado:

Ejemplo Groovy de Proceso XMLEjemplo Groovy de Proceso XML

Con solo dos líneas de código en Groovy, podemos procesar servicios web fácilmente.