blog del equipo de tecnología de 11870.com

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:

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:

3 comentarios

rssComments RSS transmitTrackBack Identifier URI


Hola, buenas:

¿Habéis usado alguna herramienta para generar la documentación? Para nuestra API de http://mivecindad.com queremos generar una documentación similar.

Un saludo

Comentario by Manuel Jesús Recena Soto on octubre 26, 2010 10:54 am


Dejé un comentario esta mañana. Pendiente de validación? ;(

Comentario by Manuel Jesús Recena Soto on octubre 26, 2010 10:29 pm


¡Hola!
Pues no, no hemos utilizado ninguna herramienta para generar la documentación, solamente nos hemos ayudado de Google Sites para alojar nuestras páginas.

Comentario by victor on octubre 28, 2010 3:18 pm

addDeja un comentario