BLEND Web Mix : quelques bons réflexes pour la publication d'une API

Guillaume Belfiore
Lead Software Chronicler
02 octobre 2013 à 12h39
0
Le Web moderne tel que nous le connaissons aujourd'hui offre davantage de souplesse aux développeurs avec la possibilité de concevoir des interfaces de programmation afin d'insérer une partie de leurs services sur des sites Internet tiers. A l'occasion du BLEND Web Mix, Eric Daspet, anciennement ingénieur chez Yahoo! Europe et désormais directeur technique chez TEA, est revenu sur les bonnes pratiques à adopter pour le client comme pour le développeur.

Popularisée par les fameuses mashups, il y a quelques années, les API ou « interfaces de programmation » constituent un ensemble de classes, des méthodes ou des fonctions publiées par un éditeur de services afin d'être utilisées par un autre développeur. Ainsi un utilitaire de photos en ligne tel que Ribbet.com fait usage des API de Flickr, Picasa ou Facebook permettant à l'internaute de récupérer directement ses clichés au sein d'un outil de manipulation graphique.

0226000006678828-photo-api-logo.jpg


Reste qu'une API devra être déployée de manière intelligente afin d'être correctement utilisée par un service tiers. Selon M. Daspet, le mot d'ordre à suivre est : la simplicité.

Il est ainsi conseillé de fournir d'emblée un bac à sable, c'est-à- dire un salon de test permettant d'observer le fonctionnement des éléments de ces interfaces. Cela permettra d'observer les retours sur chacune des fonctionnalités sans action réelle mais facilitant tout de même la prise en main et la compréhension des outils. A ce bac à sable, le développeur suggère en outre de proposer directement un kit de développement (ou SDK) pour utiliser ces librairies avec en plus des exemples concrets de codes. Le service Twilio proposant des API pour connecter un service téléphonique avec des applications Web, fait alors figure d'exemple avec un ensemble d'outils complets pour les développeurs.

Eric Daspet suggère en outre d'adopter des URL claires composées de caractères évidents (sans accents, espaces, majuscules ou caractères spéciaux). L'idée est de permettre aux développeurs d'observer les modifications directement effectuées au sein des URL, pour par exemple remonter au sein d'un répertoire.

Pour illustrer les problèmes de mise à jour, M. Daspet revient sur les récents changements annoncés par Twitter et la migration chaotique qui s'en est suivie pour les développeurs. Le réseau communautaire a premièrement publié quelques exemples pour ses nouvelles API, puis déployé un kit de développement, prévenu les développeurs par email, mis en place des périodes de tests en bloquant l'accès aux versions précédentes de son API avant d'envoyer une série d'ultimatums. « Si les développeurs ont été réticents à mettre à jour les API d'un site comme Twitter, ils ne feront aucun effort pour le vôtre  », affirme ainsi M. Daspet Il est ainsi conseillé de prévoir d'emblée les prochaines versions afin d'assurer la rétrocompatibilité et donc de limiter les premières versions au strict minimum.

0226000006678830-photo-twitter-api.jpg


Cette simplification passe également par une convention unique (singulier ou pluriel) dans le choix des termes de l'URL avec des identifiants textuels et non numériques. Ces URL ne devront pas retourner une hiérarchie de plus de trois niveaux. Pour un service d'agenda de conférences, il sera par exemple envisageable d'obtenir une liste complète des sessions, de les filtrer par thématiques et puis par heures. En revanche, il est conseillé de revenir à la racine pour obtenir davantage d'informations par exemple la liste des participants, leur biographie...

Un ensemble d'interfaces de programmation doit en outre être d'emblée pensé pour un usage à l'international. L'éditeur devra donc directement utiliser un encodage en UTF8 et rajouter des fuseaux horaires non seulement pour l'heure mais également pour le jour, lorsqu'il s'agit par exemple de proposer des requêtes dotées de valeurs temporelles (agenda, horaires de cinéma, heures d'ouverture...). Un ensemble d'interfaces de programmation pour un comparateur de prix regroupant des sites e-commerce internationaux devra aussi d'emblée gérer plusieurs devises. L'ajout de ces élement après-coup est jugés trop complexe.

Parmi les autres bonnes pratiques suggérées, le spécialiste ajoute qu'il peut être utile de mettre en place des clés semi-publiques pour l'usage des interfaces de programmation. L'éditeur sera en mesure d'analyser les requêtes effectuées par chacune des applications, d'identifier plus facilement les erreurs et le cas échéant de contacter les développeurs (identifiés via ces clés) pour résoudre les problèmes.

Enfin, concernant la sécurité, il est déconseillé de développer des solutions internes ou d'utiliser des mécanismes reposant sur l'installation de certificats côté client, lesquels sont jugés trop complexes. En outre, le développeur ne devra pas pouvoir désactiver les dispositifs de sécurité.

A lire également :
BLEND Web Mix : les défis des moteurs de recherche face au Web social
BLEND Web Mix : quand les designers se mélangent aux développeurs…
BLEND Web Mix : Machine Learning, aux frontières de l'IA
BLEND Web Mix : le fondateur d'OverBlog ouvre le bal


Guillaume Belfiore

Lead Software Chronicler

Lead Software Chronicler

Je suis rédacteur en chef adjoint de Clubic, et plus précisément, je suis responsable du développement éditorial sur la partie Logiciels et Services Web.

Lire d'autres articles

Je suis rédacteur en chef adjoint de Clubic, et plus précisément, je suis responsable du développement éditorial sur la partie Logiciels et Services Web.

Lire d'autres articles
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.

S'inscrire

Commentaires

Haut de page

Sur le même sujet