Renovamos nuestra API
Unos tres años después de lanzar nuestra API, hemos decidido darle un buen lavado de cara y crear la API v2 de 11870.com. La idea principal ha sido simplificar su uso y suplir algunas de las carencias que hemos ido detectando con el tiempo, todo ello sin cambiar demasiado lo que ya teníamos.
Para empezar, veamos algunos links interesantes:
- Documentación: http://sites.google.com/site/api11870/
- Grupo de discusión: http://groups.google.com/group/api-11870/
- Playground espartano: http://apiplayground.11870.com/search/
Y ahora abordemos las novedades más interesantes.
Autorización de usuarios con OAuth
La autorización de usuarios ahora pasa a gestionarse mediante el protocolo OAuth 1.0a. Este protocolo permite a las aplicaciones solicitar permiso a los usuarios para acceder a sus datos sin que estas aplicaciones tengan acceso a sus contraseñas. Es el protocolo que actualmente utiliza en la API de twitter o LinkedIn, por lo que hay numerosas librerías que lo soportan. Para más información puedes echar una ojeada en la documentación a la página de autenticación.
La autenticación anónima no utiliza OAuth y sigue sirviendo lo que ya tuvierais implementado con la versión anterior.
Nuevas categorías
Hace algunos meses cambiamos el sistema de categorías de 11870.com en la web pero la API seguía utilizando las anteriores. Ahora la API ya utiliza estas nuevas categorías y las consultas que realices a través de ella se corresponderán con las de la web.
Filtrado de las colecciones devueltas
Las respuestas al solicitar colecciones (feeds) se pueden filtrar de dos formas:
- Escogiendo qué campos se devuelven en cada elemento (entry). Mediante el parámetro fields se puede indicar qué campos queremos que contenga el entry. Si por ejemplo estamos haciendo una búsqueda y sólo nos interesa y el nombre y la posición del sitio, podemos pedir únicamente estos campos y nos ahorraremos el tráfico de mucha información innecesaria.
- Solicitando elementos modificados desde una fecha. Con el parámetro modifiedSince se pueden pedir los sitios guardados por un usuario desde una fecha, los últimos contactos, etc.
Flujos de actividad y check-in
Como funcionalidad adicional tenemos los flujos de actividad y la gestión de check-ins. Los flujos de actividad son el equivalente al tablón que el usuario ve en su página con la actividad reciente de sus contactos. Para implementar esto nos hemos ayudado de la extensión ActivityStreams, puedes verlo en detalle en la página de mapping de actividades.
En cuanto a los check-in, por un lado se han añadido las colecciones de consulta para ver los check-ins de un usuario y los check-ins en un sitio, y por otro también tenemos la posibilidad de crear nuevos check-ins. Consulta la página de gestión de check-ins para más información.
Todas las opiniones de un sitio
Ahora también tenemos la posibilidad de obtener todas las opiniones de un sitio. Desde un único punto de acceso por sitio podrás consultar los comentarios de los usuarios, junto con su rating, links a las imágenes, etc.
Esta funcionalidad es de uso restringido, si quieres hacer uso de ella visita la sección Premium Access en la documentación.
Interfaz REST
Uno de los principales problemas que identificamos con nuestra anterior API es que utilizar Atom como método de lectura viene muy bien, pero a la hora de crear entidades (sitios, contactos, etc) es un handicap tener que proporcionar un documento Atom válido.
Por eso ahora ofrecemos la posibilidad de crear sitios guardados, contactos y check-ins pasando ciertos parámetros con el método POST. Eso sí, recuerda que es necesario que toda la petición esté firmada mediante OAuth.
Playground
Con el objetivo de hacer más sencillo el aprendizaje de la API hemos creado un playground rudimentario para que cualquiera puede probar la API: http://apiplayground.11870.com/search/.
Ahora mismo sólo se pueden hacer pruebas sobre la búsqueda, si vemos que tiene acogida y os gusta lo iremos mejorando :-)
Librerías
Por el momento disponemos de una única libería en Python que utilice toda la funcionalidad de la nueva API: http://code.google.com/p/oosapy/. Si estás interesado en crear tu propia librería en otro lenguaje puedes usar ésta como referencia.
Iremos actualizando las nuevas librerías que tengamos en otro lenguajes en la página de librerías de la documentación.
Bueno, hasta aquí la introducción a nuestra nueva API. Si tenéis dudas o sugerencias recordad que el grupo de discusión está a vuestra disposición.
Esperamos impacientes vuestras ideas de aplicaciones utilizando nuestra API, cualquier cosa que hagáis no dudéis en contárnosla :-)
Tags: api
3 comentarios
Comments RSS
TrackBack Identifier URI
Deja un comentario

