servicios web con python

Download Servicios web con Python

If you can't read please download the document

Upload: manuel-perez

Post on 07-Feb-2017

20 views

Category:

Software


0 download

TRANSCRIPT

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=

Google

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

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)