Une API JSON est désormais disponible !
Amis Hackers du dimanche, vous aimeriez construire une application MiXiT ?
On expose désormais une API en JSON, basique, mais qui permet déjà de consulter l'essentiel de MiXiT :
- /api/members/sponsors liste les sponsors,
- /api/members/speakers liste les speakers,
- /api/members/staff liste les membres du staff,
- /api/members liste tous les membres,
- /api/members/564 affiche le membre avec l'identifiant 564 (coucou Zach !). /api/members/holman affiche le membre avec le login "holman" : oui, c'est le même. Pour l'instant : un ID est unique et immuable, un login est unique mais librement modifiable par son possesseur.
- /api/members/8/favorites ou /api/members/clacote/favorites affiche les sessions favorites du membre.
- /api/talks liste les talks. /api/talks?details=true expose en plus des données liées supplémentaires (pour vous éviter de nombreuses requêtes) : informations de base des speakers (nom, prénom, url de l'avatar), nom des intérêts associés.
- /api/lightningtalks liste les lightning talks,
- /api/talks/125 détaille la session d'identifiant 125. /api/talks?details=true expose les données supplémentaire liées : speakers, intérêts.
Cette API supporte le JSONP pour le cross-domain : /api/members/564?callback=myCallback (merci Fabien et Philippe pour les suggestions! :).
Pour le moment - et probablement pour toujours - c'est du _read-only_ : seules les requètes GET sont acceptées.
Nous n'exposons pas vos données personnelles : ni l'email, ni les identifiants Twitter ou Google+ ne sont retournés par l'API. Cela évite de les fournir en masse à des personnes mal intentionnées qui pourraient vous solliciter automatiquement.
N'hésitez pas à revenir vers nous pour demander des éclaircissements, faire corriger des problèmes, ou ajouter des données qui vous manqueraient dans cette première itération (par exemple : gestion d'une pagination, remontée des activités, des commentaires, ...)
On n'attend plus que vos réalisations : happy hacking !
**Mise à jour du 30 mars 2013**
Désormais, les horaires des sessions planifiées sont exposés : nouveaux attributs "start" et "end" (format ISO8601). Exemple : /api/talks/125?details=true. Attention, certaines sessions n'ont pas d'horaire associé (par exemple Usinette vs FabLab qui aura lieu toute la journée).
Par ailleurs, certains services prennent désormais un paramètre optionnel "details=true" exposant des données liées supplémentaires, pour vous éviter de nombreuses requêtes. Il est pour le moment pris en charge sur les sessions, pour exposer les données de base des speakers et des intérêts. Suivant vos besoins, il pourra à terme être pris en charge sur d'autres services.
**Mise à jour du 4 avril 2013**
A la demande - quasiment - générale de deux développeurs d'application mobile, l'API a été enrichie :
- /api/talks retourne désormais les salles affectées dans un nouvel attribut "room". Attention : leur nom est provisoire et va changer d'ici la conférence.
- /api/members/8 retourne désormais les intérêts d'un membre, en version minimale, ou détaillée avec "?details=true"
- /api/members/8/favorites retourne les sessions favorites du membre, en version minimale, ou détaillée avec "?details=true".
**Mise à jour du 18 avril 2013**
- /api/talks et /api/talks/125 retourne un nouvel attribut "language" valant "fr" ou "en" pour respectivement la langue française ou anglaise. Attention, il n'est pas toujours renseigné.
- la consultation des membres peut désormais se faire indifféremment par ID ou par LOGIN. Ainsi, vous pouvez invoquer /api/members/8 ou /api/members/clacote, /api/members/8?details=true ou /api/members/clacote, /api/members/8/favorites ou /api/members/clacote/favorites.
Happy Hacking!