Universidad Carlos III de Madrid Arquitecturas de Sistemas E-Business Saulo Barajas 31may04 Introducción Interfaz WSDL de Google API Ejemplo de petición y respuesta SOAP Clases Java de Google API Aplicación de ejemplo Conclusiones Preguntas y comentarios Uso de Google Web API, SOAP y WSDL 2 1
Google proporciona una API experimental que permite acceder por SOAP a sus servicios de búsqueda. Componentes: Descripción WSDL de las operaciones Servidor que procesa las peticiones SOAP (hasta 1000 diarias por cliente) Clases Java para invocar las operaciones Ejemplos en Java y en.net http://www.google.com/apis/ Uso de Google Web API, SOAP y WSDL 3 1. Petición HTTP Servidor web 6. Respuesta en HTML 2. Petición SOAP 5. Respuesta SOAP Servidor SOAP de Google 4. Respuesta Google 3. Petición Google Cliente web Base de datos de Google La aplicación desarrollada utiliza Cocoon en el servidor web La API de Google posibilita los pasos 2 y 5 Google ofrece archivo WSDL describiendo las operaciones disponibles Uso de Google Web API, SOAP y WSDL 4 2
Operación Entradas Tipo Salida Tipo dogetcachedpage dogooglesearch dospellingsuggestion key url key q start maxresults filter restrict safesearch lr ie oe key phrase return return return xsd:base64binary typens:googlesearc hresult http://api.google.com/googlesearch.wsdl Uso de Google Web API, SOAP y WSDL 5!"#" $ %& Elemento documentfiltering searchcomments estimatedtotalresultscount estimateisexact resultelements searchquery startindex endindex searchtips directorycategories searchtime Tipo typens:resultelementarray typens:directorycategoryarray xsd:double Uso de Google Web API, SOAP y WSDL 6 3
!"#" $& ' # Elemento summary URL snippet title cachedsize relatedinformationpresent hostname directorycategory directorytitle Tipo typens:directorycategory Uso de Google Web API, SOAP y WSDL 7 '$#" " <?xml version='1.0'?> <SOAP-ENV:Envelope xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/' xmlns:soap-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:typens='urn:googlesearch' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:xsd='http://www.w3.org/2001/xmlschema' xmlns:xsi='http://www.w3.org/2001/xmlschema-instance'> <SOAP-ENV:Body> <ns1:dospellingsuggestion SOAP- ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:ns1='urn:googlesearch'> <key xsi:type=''> aaaaaaaaaabbbbbbbccccccccddddd </key> <phrase xsi:type=''> misisipi </phrase> </ns1:dospellingsuggestion> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Uso de Google Web API, SOAP y WSDL 8 4
'$#" " <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap- ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/1999/xmlschema-instance' xmlns:xsd='http://www.w3.org/1999/xmlschema'> <SOAP-ENV:Body> <ns1:dospellingsuggestionresponse xmlns:ns1='urn:googlesearch' SOAP- ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <return xsi:type=''> mississippi </return> </ns1:dospellingsuggestionresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Uso de Google Web API, SOAP y WSDL 9 ( Clase GoogleSearch GoogleSearchResult GoogleSearchResult Element GoogleSearchDirect orycategory GoogleSearchFault Significado y algunos métodos Acceso a los servicios de Google por SOAP $&% '(*)+,!-. #/021 +34 +,!-. #/021 +34 5 # 76 8 " 9.:: 8 ';'< =2>!?'@ 68 +,ABC 021 #" +,AED2 F A G*#,F #H I> < @2'" Resultados de una búsqueda GoogleSearchResultElement[ ] getresultelements() double getsearchtime() Un elemento de búsqueda String geturl() String gettitle() GoogleSearchDirectoryCategory getdirectorycategory() Utilizado por GoogleSearchResult! #" Manejo de excepciones Uso de Google Web API, SOAP y WSDL 10 5
Las operaciones de Google son accesibles desde Cocoon de dos formas: Utilizando las clases Java proporcionadas. Sus métodos generan automáticamente los mensajes SOAP Requiere código Java en páginas XSP. Construyendo los mensajes SOAP y procesando las respuestas del servidor Elemento <soap:call> en XSP. Se usan ambos métodos en la aplicación Uso de Google Web API, SOAP y WSDL 11 " #" )*+ <map:match pattern=""> <map:generate src="index.htm"/> <map:serialize/> </map:match> Uso de Google Web API, SOAP y WSDL 12 6
" #" ),+ Operación dospellingsuggestion <map:match pattern="corregir"> <map:generate src="corregir.xsp" type="serverpages"/> <map:transform src="resultado-corregir.xsl"/> <map:serialize/> </map:match> Uso de Google Web API, SOAP y WSDL 13 " #" )-+ Operación dogooglesearch <map:match pattern="buscar"> <map:generate src="buscar.xsp" type="serverpages"/> <map:transform src="resultado-buscar.xsl"/> <map:serialize/> </map:match> Uso de Google Web API, SOAP y WSDL 14 7
" #" ).+ Operación dogetcachedpage <map:match pattern="vercache"> <map:generate src="vercache.xsp" type="serverpages"/> <map:transform src="resultado-vercache.xsl"/> <map:serialize/> </map:match> Uso de Google Web API, SOAP y WSDL 15 La Google de API permite experimentar con web services. No se ofrece comercialmente. El uso de los web services en Cocoon resulta más sencillo que en otros lenguajes debido a su orientación a XML y sus posibilidades de transformación de documentos. La aplicación simple presentada ofrece un punto de partida para exprimir más la API de Google o experimentar con otros web services. Uso de Google Web API, SOAP y WSDL 16 8
Preguntas y comentarios 9