af83

API Days

Il y a quelques jours se sont déroulées les API Days, organisés par Fabernovel et Webshell. Les conférences ont couvert un large spectre des API, d'un point de vue à la fois technique et commercial. Cet évènement a aussi permis de démontrer le potentiel des API en termes d'usages : en ramenant de la transversalité entre les sources de données, les API permettent de créer des services plus proches des parcours d'usages réels des personnes.

Certains exemples au succès avéré revenaient régulièrement : Netflix, Shopify, Amazon, Facebook, etc. Mais les API ouvrent des opportunités dans de nombreux autres secteurs, comme par exemple le journalisme. Plusieurs médias étaient d'ailleurs présents (France Télévision, L'Express, Le Monde, Rue89, Les Échos) pour expliquer leurs positionnements sur le sujet.

Voici 3 aspects des API, abordés à travers 3 conférences, qui m'ont particulièrement intéressée.

Les API dans l'histoire du web

Dans sa conférence "Future Interface: What the last 50+ years of modern computing history may tell us about the future", Mike Amundsen (Layer7) balaie les 50 dernières années de l'histoire du web et ses différents acteurs pour remettre en perspective les enjeux des API.

  • En 1945, Vannevar Bush tente déjà de relier les informations des humains à distance au moyen de la machine qu'il avait conçue, le Memex.
  • En 1963, Ted Nelson poursuit la réflexion de V.Bush et décrit plus précisément le fonctionnement de ces liens. Il invente la notion d'hypertexte.
  • A la même époque, Douglas Engelbart met au point le hardware qui permet de faire réellement fonctionner et d'incarner ce réseau de liens.
  • Puis en 1965, Christopher Alexander identifie les patterns pour penser et agir dans ce réseau (notions de maillage et de noeuds plutôt que d'arborescence).
  • Dans les années 90, Tim Berners Lee part des hypertext de T.Nelson et développe le HyperText Transfert Protocol (HTTP)
  • Roy T. Fielding construit ensuite les nouveaux systèmes basés sur ces patterns (architecture REST).

Plus récemment, M. Amundsen cite :

  • Github qui donne une nouvelle envergure au Memex de Vannevar Bush en rendant effectivement possible des interactions collaboratives à distance (de temps et d'espace).
  • Ryan Dahl a également contribué à traiter la latence en créant NodeJS.
  • Enfin Eric Schweikardt a poursuivi la réflexion en concevant des systèmes qui accompagnent et stimulent les comportements émergents, à travers son projet Cubelets.

En s'appuyant sur ce bref historique, M. Amundsen démontre que le web tend vers les mêmes objectifs depuis le début : des briques faciles à combiner, un système capable d'opérer de façon largement distributive. Tout cela dans le but d'augmenter les capacités intellectuelles de l'homme. Les API se positionnent dans la suite logique de cette évolution.

API et internet des objets : vers une API unique ?

Dans "API and ubiquity", François Daoust (Joshfire) explore les enjeux des API liés à l'Internet des objets.

Le fait que les objets deviennent "connectés" requière que l'utilisateur puisse accéder au contenu sur n'importe quel device, quel qu'il soit. Cela implique notamment de pouvoir dissocier le contenu du contenant (le js des données par exemple), d'être "provider agnostic" autant que possible, et de privilégier l'exécution côté client.

Il y a néanmoins deux problèmes majeurs :

  • chaque fournisseur de contenu définit sa propre API, souvent propriétaire
  • chaque fournisseur de contenu définit aussi sa propre structure de réponse (xml ou json par exemple, avec un vocabulaire propre)

L'enjeu est donc d'aller vers une seule API REST read/write pour tout, avec un vocabulaire et une syntaxe commune pour décrire les objets web.

F. Daoust propose pour cela d'utiliser json-ld ("ld" signifie linking data). Ce format vise à utiliser un seul nom pour chaque chose, en définissant des types comme schema, person, name, etc. Cela permet ensuite d'effectuer une conversion automatique entre les contextes, sans bouleverser les méthodes de développement.

Actuellement, la syntaxe de json-ld est stable, l'API est en cours de finalisation. Elle est notamment utilisée sur Joshfire Factory, l'outil de développement d'application créé par Joshfire.

API et open source

Dans sa conférence "Why open", S. Klabnik s'appuie sur les concepts de Gilles Deleuze pour penser les enjeux open source liés aux API.

Il propose ainsi qu'Internet, de même que les entreprises, ne sont pas des entités définies et fermées, mais au contraire des agencements d'éléments divers. Ces agencements sont en constant rééquilibrage : telle entreprise en rachète une autre, intègre ses composants et redéfinit ainsi son propre périmètre d'actions et d'acteurs. C'est ce que Deleuze nomme la dé-territorialisation et la re-territorialisation.

Les API exacerbent ces processus d'agencement et de "déterritorialisation" : des sociétés de tout secteur vont utiliser l'API de Facebook, ainsi vont-elle bouleverser leur périmètre actuel (dé-territorialisation) pour intégrer les possibilité de cette API et définir un nouveau périmètre de fonctions, d'usages (re-territorialisation).

Cela crée un important enjeu industriel et économique : la plupart des entreprises souhaitent mettre en place des API qui valorisent leurs données et diffusent leurs services, mais craignent de perdre leur travail en ouvrant trop ces API. C'est le cas par exemple de Twitter qui entend partager son API tout en contrôlant son utilisation/accès.

Le problème, explique S. Klabnik, c'est qu'on ne peut pas partager quelque chose et en même temps vouloir le contrôler. En ouvrant son API et en permettant aux gens de participer au développement de nouvelles fonctionnalités/contenus, l'entreprise évolue mieux et plus rapidement, et les utilisateurs sont d'avantage impliqués dans le service.

Pour conclure

Ces conférences ne représentent donc que 3 aspects des API. De nombreux autres aspects ont été abordés, tels que le temps réel (au sujet desquels Bruno Michel, notre CTO, a d'ailleurs fait une présentation intitulée "Welcome to the evented age"), l'hypermédia, la valeur commerciale des API, "l'évangélisation" que cela implique dans les entreprises, etc. Le sujet est donc vaste… Vivement la prochaine édition !

Pour en savoir plus :

blog comments powered by Disqus