af83

L'API de Backtype et la découverte d'API Rest en général

Hier, j'ai joué avec l'API de backtype. Elle permet de récupérer des tweets, commentaires et autres contenus en rapport avec une recherche. Dans mon cas, je voulais afficher sur les pages d'un site les tweets avec un lien vers cette page. J'aurais pu passer par l'API de recherche de twitter, mais je serais passé à coté de la plupart des tweets, car ceux-ci contiennent des URL raccourcies. Heureusement, Backtype comble ce problème, et il propose gratuitement une API pour faire ça.

Donc, c'est parti. Je crée un compte en 3 clics, et je jette un coup d'oeil à la doc de l'API. Bien, ça a l'air très simple, je ne devrais pas en avoir pour plus d'une heure. Et pourtant, 3 heures plus tard, j'y étais toujours… Rien n'est jamais aussi simple que cela en a l'air.

Mais pourquoi ? Pourquoi faut-il lire une documentation pour utiliser une API Rest toute simple ? Pourquoi suis-je obligé de sortir curl pour savoir si je dois utiliser le champ author.name, le champ author.user.name ou encore author.profile.name ? Ce serait tellement plus simple si je pouvais juste jouer avec l'API directement depuis une page web. En plus, ce ne serait même compliqué à mettre en place.

Imaginez : pour chaque fonction de l'API, en plus de fournir la documentation de référence, je donne une page HTML avec un formulaire et un bout de javascript. Le formulaire HTML reprend les paramètres que l'on peut passer à cette méthode de l'API, avec l'API key déjà rensignée (après tout, je suis déjà connecté sur le site). Le javascript permet de faire une requête AJAX vers l'API quand je soumets le formulaire après avoir vérifié que je n'ai pas oublié de remplir un champ obligatoire. Il permet également de mettre en forme proprement la réponse de l'API. On pourrait même imaginer de petites fonctionnalités supplémentaires bien pratiques : expliquer à quoi sert un paramètre en particulier quand on survole le champ du formulaire qui lui est associé, par exemple.

Bref, je suis généralement un adepte de la ligne de commande, mais dans ce cas précis, je trouverais cela tellement plus efficace de pouvoir essayer rapidement une API sans avoir à faire des copier-coller ou essayer de déchiffrer un JSON sans espace ni retour à la ligne.

blog comments powered by Disqus