PDF b/n

Anuncio
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/
3
Uso de Google Web API, SOAP y WSDL
2. Petición SOAP
Servidor
web
5. Respuesta
SOAP
1. Petición HTTP
6. Respuesta
en HTML
Cliente
web
Servidor
SOAP de
Google
4. Respuesta
Google
3. Petición
Google
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
key
url
xsd:string
xsd:string
return
xsd:base64Binary
doGoogleSearch
key
q
start
maxResults
filter
restrict
safeSearch
lr
ie
oe
xsd:string
xsd:string
xsd:int
xsd:int
xsd:boolean
xsd:string
xsd:boolean
xsd:string
xsd:string
xsd:string
return
typens:GoogleSearc
hResult
xsd:string
xsd:string
return
xsd:string
doSpellingSuggestion key
phrase
http://api.google.com/GoogleSearch.wsdl
5
Uso de Google Web API, SOAP y WSDL
!"
#" $
%&
Elemento
Tipo
documentFiltering
searchComments
estimatedTotalResultsCount
estimateIsExact
resultElements
searchQuery
startIndex
endIndex
searchTips
directoryCategories
searchTime
xsd:boolean
xsd:string
xsd:int
xsd:boolean
typens:ResultElementArray
xsd:string
xsd:int
xsd:int
xsd:string
typens:DirectoryCategoryArray
xsd:double
Uso de Google Web API, SOAP y WSDL
6
3
!"
#" $ &
' #
Elemento
Tipo
summary
URL
snippet
title
cachedSize
relatedInformationPresent
hostName
directoryCategory
directoryTitle
xsd:string
xsd:string
xsd:string
xsd:string
xsd:string
xsd:boolean
xsd:string
typens:DirectoryCategory
xsd:string
7
Uso de Google Web API, SOAP y WSDL
'$ # "
"
<?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='xsd:string'>
aaaaaaaaaabbbbbbbccccccccddddd
</key>
<phrase xsi:type='xsd:string'>
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='xsd:string'>
mississippi
</return>
</ns1:doSpellingSuggestionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Uso de Google Web API, SOAP y WSDL
9
(
Clase
Significado y algunos métodos
GoogleSearch
Acceso a los servicios de Google por SOAP
$&% '(*)+,!-.#/021+345# 768 "
9 ::8 ';'< =2>!?'@68 +,ABC 021#"
.
+,AED2 FAG*# ,F#H I> <@2'"
GoogleSearchResult Resultados de una búsqueda
GoogleSearchResultElement[ ] getResultElements()
double getSearchTime()
GoogleSearchResult Un elemento de búsqueda
Element
String getURL()
String getTitle()
GoogleSearchDirectoryCategory getDirectoryCategory()
GoogleSearchDirect
oryCategory
Utilizado por GoogleSearchResult
GoogleSearchFault
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
<soap:call> en XSP.
Elemento
Se usan ambos métodos en la aplicación
11
Uso de Google Web API, SOAP y WSDL
"
#"
)*+
<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>
13
Uso de Google Web API, SOAP y WSDL
"
#"
)-+
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
Descargar