190 likes | 452 Vues
Uso de Google Web API, SOAP y WSDL. Universidad Carlos III de Madrid Arquitecturas de Sistemas E-Business Saulo Barajas 31may04. Contenido. Introducción Interfaz WSDL de Google API Ejemplo de petición y respuesta SOAP Clases Java de Google API Aplicación de ejemplo Conclusiones
E N D
Uso de Google Web API,SOAP y WSDL Universidad Carlos III de Madrid Arquitecturas de Sistemas E-Business Saulo Barajas31may04
Contenido • 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
Introducción • 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/
Servidor web Servidor SOAP de Google Base de datos de Google Cliente web Web service de Google 2. Petición SOAP 5. Respuesta SOAP 3. Petición Google 1. Petición HTTP 6. Respuesta en HTML 4. RespuestaGoogle • 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
Interfaz WSDL http://api.google.com/GoogleSearch.wsdl
Ejemplo petición SOAP <?xml version='1.0'?> <SOAP-ENV:Envelopexmlns: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:doSpellingSuggestionSOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:ns1='urn:GoogleSearch'> <key xsi:type='xsd:string'> aaaaaaaaaabbbbbbbccccccccddddd </key> <phrase xsi:type='xsd:string'> misisipi </phrase> </ns1:doSpellingSuggestion> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Ejemplo respuesta SOAP <?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:doSpellingSuggestionResponsexmlns:ns1='urn:GoogleSearch' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <return xsi:type='xsd:string'> mississippi </return> </ns1:doSpellingSuggestionResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Acceso a Google desde Cocoon • 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
<map:match pattern=""> <map:generate src="index.htm"/> <map:serialize/> </map:match> Aplicación simple (1)
<map:match pattern="corregir"> <map:generate src="corregir.xsp" type="serverpages"/> <map:transform src="resultado-corregir.xsl"/> <map:serialize/> </map:match> Aplicación simple (2) Operación “doSpellingSuggestion”
<map:match pattern="buscar"> <map:generate src="buscar.xsp" type="serverpages"/> <map:transform src="resultado-buscar.xsl"/> <map:serialize/> </map:match> Aplicación simple (3) Operación “doGoogleSearch”
<map:match pattern="vercache"> <map:generate src="vercache.xsp" type="serverpages"/> <map:transform src="resultado-vercache.xsl"/> <map:serialize/> </map:match> Aplicación simple (4) Operación “doGetCachedPage”
Conclusiones • 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 trans-formació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.
Preguntas y comentarios Uso de Google Web API, SOAP y WSDL