Servicios WEB
Presentacin
Quin ofrece servicios web?
... y muchos ms
Como acceder a servicios web
REST
JSON
SOAP
TEXTO
HTML
...
Comparacin REST/JSON
...
Alberto Garcia 21/11/1979 David Rodriguez 10/01/1983
......var myJSONObject = {"listado": [ { "nombre": "Alberto", "apellidos": "Garcia", "fecha": "21/11/1979" }, { "nombre": "David", "apellidos": "Rodriguez", "fecha": "10/01/1983" } ]};...RESTJSON
Servicios REST I
REST (REpresentational State Transfer) es una forma muy sencilla de crear y usar servicios web.
Se utiliza la semntica del protocolo HTTP (mtodos POST, PUT, GET, DELETE) para realizar operaciones en el servidor.
El resultado de cada peticin devolver XML
Los sistemas que siguen los principios REST se llaman con frecuencia RESTful
Servicios REST II
REST afirma que la web ha disfrutado de escalabilidad como resultado de una serie de diseos fundamentales clave:
Protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la informacin necesaria para comprender la peticin. Sin embargo, en la prctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el estado de la sesin.
Conjunto de operaciones bien definidas : HTTP en s define un conjunto pequeo de operaciones, las ms importantes son POST, GET, PUT y DELETE.
Sintaxis universal para identificar los recursos : cada recurso es direccionable nicamente a travs de su URI (cadena de caracteres corta que identifica inequvocamente un recurso (servicio, pgina, documento, ...). Ej: http:, mailto:, ftp:, ...)
Uso de hipermedios : la representacin de este estado HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.
Servicios JSON I
Acrnimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos.
Es un subconjunto de la notacin literal de objetos de JavaScript que no requiere el uso de XML.
Su simplicidad ha dado lugar a la generalizacin de su uso, especialmente como alternativa a XML en AJAX.
Una de las supuestas ventajas sobre XML como formato de intercambio de datos en este contexto es que es mucho ms sencillo escribir un analizador semntico de JSON. En JavaScript, un texto JSON se puede analizar fcilmente usando el procedimiento eval(), lo cual ha sido fundamental para que JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX, debido a la ubicuidad de JavaScript en casi cualquier navegador web.
Servicios JSON II
Si bien es frecuente ver JSON posicionado contra XML, tambin es frecuente el uso de JSON y XML en la misma aplicacin. Por ejemplo, una aplicacin de cliente que integra datos de Google Maps con datos meteorolgicos en SOAP hacen necesario soportar ambos formatos.
En diciembre de 2005 Yahoo! comenz a dar soporte opcional de JSON en algunos de sus servicios web.
REST: Ejemplo
Ejemplo accediendo a Flickr.
Solicitar un API Key :http://www.flickr.com/services/apps/create/apply/
Vamos a usar el metodo flickr.photos.getRecent
Con esta URL se puede probar que funciona bien el API_KEY:http://api.flickr.com/services/rest/?method=flickr.photos.getRecent&api_key=
JSON: Ejemplo
Ejemplo accediendo a Microsoft API Translator.
Solicitar un API Key :http://www.bing.com/developers
Vamos a usar el mtodo Translate
Con esta URL se puede probar que funciona bien:http://api.microsofttranslator.com/V2/Ajax.svc/Translate?text=Hola%20Mundo&from=es&to=en&appId=
Libreras para acceder al API:http://code.google.com/p/google-api-python-clienthttp://code.google.com/p/gdata-python-client
Servicios accesibles:Google Custom Search API
YouTube Data API
Google Maps Data API
URL shortener API
Google Calendar API
Google Documents List Data API
Picasa Web Albums Data API
Blogger Data API
Google Book Search API
Google Analytics API
Google Apps Provisioning API
Google Base Data API
Google Code Search Data API
Google Contacts API
...
Google: Consola APIs
Acceso:https://code.google.com/apis/console
Google: Instalacin gdata-python-client
Descargar de aqu : http://code.google.com/p/gdata-python-client/downloads/list .
Descomprimir el archivo en algn lugar y por ltimo ejecutar el siguiente comando:
# sudo ./setup.py install
Google: Instalacin google-api-python-client
Descargar de aqu : http://code.google.com/p/google-api-python-client/downloads/list .
Descomprimir el archivo en algn lugar y por ltimo ejecutar el siguiente comando:
# sudo ./setup.py install
Tambin es compatible con setuptools y se puede instalar as:
# sudo easy_install google-api-python-client
Google: Bsquedas
API :http://code.google.com/intl/es/apis/customsearch/v1/overview.html
Cuota gratuita limitada a 100 bsquedas por da.
Si se necesita ms se cobrarn $5 por cada 1000 consultas, hasta las 10,000 consultas por da. Si se necesitan ms hay que pedir una cuota adicional.
Google: Youtube
API:http://code.google.com/apis/youtube/1.0/developers_guide_python.html
Buscar, subir, descargar, eliminar videos,...
Google: Maps
API :http://code.google.com/apis/maps/documentation/webservices/index.html
Tiene varios mdulos:Directions API: Calcula direcciones entre localizaciones
Distance Matrix API: Calcula tiempo y distancias para una matriz de origenes y destinos.
Elevation API : Provee datos de elevacin para todas las localizaciones de la superficie de la tierra. Si es negativa es bajo el mar.
Geocoding API : Convierte direcciones en coordenadas y viceversa.
Places API : Devuelve informacin sobre lugares. Servicios cercanos, restaurantes, cines, puntos interesantes, ...
Google: URL shortener
API:http://code.google.com/apis/urlshortener/v1/reference.html
Servicio para acortar URL en unos pocos caracteres y que asi sea ms fcil poder usarlas en email, mensajes cortos, sms, ...
Requiere autentificacin Oauth, que sale hecha en el ejemplo. Esto implica pegar una url en el navegador para darle permiso a la aplicacin a acceder a nuestra cuenta de Google.
Google: Calendar
API:http://code.google.com/intl/es/apis/calendar/data/2.0/developers_guide_python.html
Permite ver y crear calendarios
Permite ver y crear eventos, hacer consultas sobre eventos, ....
Google: Docs
API:http://code.google.com/apis/documents/docs/3.0/developers_guide_python.html
Crear documentos, hojas de calculo, ...
Eliminarlas, subirlas, hacer bsquedas,...
Twitter es una red de informacin de tiempo real que permite conectarte a lo que encuentras interesante.
Simplemente busca cuentas relevantes y sigue las conversaciones.
La clave de Twitter son pequeos pedazos de informacin llamados Tweets.
Cada Tweet tiene 140 caracteres de longitud.
Twitter: Ejemplo
API :https://dev.twitter.com/docs/api
Hay que crear una nueva aplicacin:Se explica despus
Libreras para facilitar el acceso:http://code.google.com/p/python-twitter
Instalacin librera:sudo easy_install python-twitter
Twitter: Crear aplicacin I
Para poder usar twitter se debe crear una aplicacin twitter
Se accede a esta URL:https://dev.twitter.com/apps/new
No hace falta rellenar el Callback URL y hay que darle permisos de Read and Write sino no se pueden hacer posts. Esto nos dar dos datos CONSUMER KEY y CONSUMER SECRET.
Lo siguiente es obtener la credenciales Oauth para nuestra aplicacin python, para ello viene un script con python-twitter que habr que modificar para meter el COMSUMER KEY y el CONSUMER SECRET:get_access_token.pyNos pedir que coloquemos una url en el navegador, para darle permiso con nuestro usuario y despus del proceso nos dar un PIN que habr que introducir para obtener otros 2 datos Twitter Access Token Key y Access Token Secret
Ahora ves a la aplicacin python y haz el login como se explica
Twitter: Crear aplicacin II
Ahora ves a la aplicacin python y haz el login como sigue:
api = twitter.Api(CONSUMER_KEY, CONSUMER_SECRET, TWITTER_ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
Top Related