Qu’est-ce qu’une API ? En Français s'il vous plait !

July 03, 2019 -6 min de lecture

API
Général

Photo by Nikola Knezevic on Unsplash

Il y a bien des années maintenant, lorsque je suis tombé pour la première fois sur ce terme d’API, je me suis bien demandé ce que cela voulait dire. J’ai alors eu une réaction tout à fait humaine, c’est à dire faire comme si savais ce que c’était et passer à autre chose sans chercher à aller plus loin. Seulement voilà, ces trois petites lettres API se trouvaient de partout. Impossible de passer à côté de ce terme nébuleux et fourre-tout. Il m’a donc fallu un peu de recherche et de pratique pour enfin comprendre de quoi il s’agissait.

Comme vous vous en doutez, API c’est un acronyme anglais qui signifie Application Programming Interface. Même si son usage s’accélère de plus en plus avec le temps, son apparition date approximativement des années 60.

Si vous voulez enfin comprendre le sens de ce mot, laisser moi vous l’expliquer le plus simplement du monde.

Un exemple de la vie de tous les jours

Avant de disséquer la signification de l’acronyme, prenons un exemple d’API.

Vous êtes dans la rue et recherchez un restaurant pour lequel vous avez réservé une table. Là où vous pourriez sortir un plan papier et demander aux passants pour localiser le restaurant, vous vous rappelez que nous sommes au 21e siècle et que les contacts entre humains sont démodés. Vous lancez Google Maps. Vous tapez l’adresse du restaurant et pratiquement instantanément, Google vous affiche un marqueur sur la carte. Vous lancez la navigation piétonne et arrivez tranquillement à votre restaurant.

Toutes mes félicitations, vous venez d’utiliser indirectement une API. Et pas n’importe laquelle, celle de Google Maps. Vous aviez réservé votre restaurant par internet via une application comme La Fourchette ? Je vous félicite doublement, vous avez utilisé une autre API : celle de La Fourchette.

Une API ce n’est pas l’application en elle-même !

Mon exemple vous a probablement laissé croire que l’application en elle-même était l’API. Et bien non, pas du tout 😅. L’application n’est qu’une interface qui vous permet de communiquer via un programme , avec des données stockées sur un serveur, un service ou une base de données externe. Allez, je sens que c’est le moment de définir les termes de l’API.

Définition d’une API

Application : c’est par exemple l’application Google Maps que nous avons évoquée plus tôt. Par elle-même, cette application ne fait rien du tout. Elle à besoin d’un utilisateur qui va la solliciter pour obtenir sa localisation et rechercher une adresse auprès d’un serveur distant Google. Ce serveur Google a également besoin de votre localisation, qu’il va récupérer via l’appli Google Maps depuis les données GPS de votre appareil. L’application est une d’intermédiaire entre un utilisateur final et des services distants. L’application utilise des données entrantes et sortantes pour arriver à accomplir la tâche qui lui ait demandé par son utilisateur.

L’application s’entend au sens large, il peut s’agir d’une application mobile, d’un site internet, de votre montre connectée, de votre télé connectée, bref, approximativement tout ce qui est connecté d’une manière ou d’une autre.

Programming : ce sont les rouages de l’application, le code qui régit son fonctionnement. C’est cette programmation qui permet d’exécuter une série d’instructions en fonction de ce que demande l’utilisateur. Dans l’exemple de Google Maps, deux « codes » se parlent mutuellement, celui de l’application elle-même qui va poser une question précise à des services distants, et les services distants qui vont répondre exactement à sa question.

Interface : c’est ce qui permet à l’utilisateur d’interagir avec l’application et de déclencher des interactions avec son programme interne. Vous avez très certainement croisé le terme d’UI (User Interface) et bien c’est un peu ce dont il est question ici. Pour Google Maps, c’est par exemple, la zone de recherche ou le clavier qui apparaissent lorsque vous souhaitez effectuer une recherche, la carte affichée, les icônes cliquables, etc.

Qui est l’utilisateur d’une API ?

Une API c’est l’interface qui permet à un programme de communiquer avec un autre programme qui se trouve ailleurs, sur des serveurs distants ou une autre application par exemple. Cette communication a pour but d’obtenir des données qui seront restituées d’une manière ou d’une autre à l’utilisateur final.

Il est important de bien comprendre que l’utilisateur d’une API n’est jamais l’utilisateur physique qui se sert d’une application comme Google Maps. Et oui, l’utilisateur de l’API c’est le programme de l’application qui va utiliser l’interface d’un programme distant pour obtenir les données qui seront ensuite traduites et affichées à l’utilisateur final qui lui est l’utilisateur physique.

Retenez bien cette distinction entre l’utilisateur final (end-user) et l’utilisateur d’une API qui est un code informatique.

Que font les API ?

Lorsque vous naviguez sur internet, vous utilisez une URL et obtenez en retour une page internet. Pour les API c’est pratiquement la même chose, elles utilisent une URL afin d’obtenir des données, mais ces données sont à l’état brut, très souvent au format JSON (JavaScript Object Notation). C’est un bloc de texte brut sans aucune mise en forme, rien de bien lisible pour l’utilisateur final. C’est pour cette raison que le programme de votre application qui utilise l’API va vous traduire ces données et vous afficher joliment ce que vous aviez demandé à l’application. Toutes les données reçues par l’application ne vous seront pas forcément retournées, le programme interne triera le tout et certaines données ne seront peut-être destinées qu’à son fonctionnement interne.

Les étapes de l’utilisation d’une API

Suivons la suite d’évènements qui amènent à utiliser une API.

  1. L’utilisateur final de l’application demande à effectuer une action.
  2. L’application reçoit la demande de l’utilisateur final. Cette demande nécessite en partie l’intervention d’un service externe à l’application elle-même afin d’obtenir les données nécessaires au programme.
  3. Le programme interne à l’application prépare sa demande consciencieusement en suivant les modalités définies dans les règles de fonctionnement de l’API que le développeur a suivi scrupuleusement en développant son programme.
  4. Le programme sollicite une URL ou plus généralement tout service externe à l’application elle-même et lui demande les données dont il a besoin.
  5. L’API qui se trouve au bout de cette URL ou ce service externe et fait office de portail. Ce portail dispose d’un garde à l’entrée, un peu comme un douanier. Nous appellerons ce douanier Cerbère. Cerbère qui est le programme interne de l’API vérifie que tout est en règle dans la demande de son utilisateur (le programme de l’application).
  6. Tout est en règle. Cerbère invite l’utilisateur à patienter le temps qu’un coursier apporte les données sollicitées sur un plateau.
  7. L’utilisateur de l’API tout content d’avoir récupéré ces données les ramène à la maison pour les préparer dans son programme interne.
  8. L’application qui attendait jusque là a le plaisir de voir son programme interne lui fournir des données lisibles par l’utilisateur final.
  9. L’application peut afficher les données selon la mise en page prévue par l’application.
  10. L’utilisateur final est heureux d’avoir localisé son restaurant. Il n’aura pas eu à attendre bien longtemps, quelques millisecondes en moyenne, rien qui ne soit bien perceptible par ces yeux d’humains. 👍

Résumons ce que sont les API

Les API sont des portails entre deux mondes

Ce portail se doit d’être doté d’un gardien, le fameux Cerbère. C’est lui qui va vérifier que l’utilisateur dispose des autorisations requises pour accéder aux données qu’il sollicite. Souvent, les développeurs d’une API prévoient la mise en place d’une clé d’API (API key). Cette clé permet d’encoder les permissions de l’utilisateur (le programme externe). A-t-il le droit de lire toutes les données disponibles ? Une partie seulement ? Peut-il également enregistrer ou modifier des données sur le serveur de derrière l’API ? Tout ça se doit d’être scrupuleusement prévu par les développeurs de l’API afin d’éviter toute faille de sécurité. Car oui, une API c’est un point d’entrée sur votre serveur. Lorsque vous développez une API, vous avez tout intérêt à entrainer votre Cerbère comme un Navy Seal.

Les API enrichissent les fonctionnalités disponibles dans chaque application

Ces données brutes envoyées par l’API permettent d’enrichir de nombreuses applications de fonctionnalités complexes qui n’auraient pas été possibles sans, ou du moins pas aisément. L’idée d’une API est de ne pas indéfiniment réinventer la roue. Vous voulez utiliser un système de cartographie ? Au lieu de développer votre système pour un coût astronomique, vous avez plutôt intérêt à utiliser celui de Google Maps pour un coût réduit.

Voilà donc ce que sont les API. Je ne vais pas rentrer ici dans le détail sûr la façon de développer une API ou comment interagir avec des API en JavaScript. Cela fera l’objet d’autres articles (Attention spoiler alert : REST et GraphQL, nous voilà !).

C’est tout, pour le moment …😉


Mathias OVIEVE

Rédigé par Mathias OVIEVE, développeur fullstack web et mobile indépendant qui s'efforce de créer des choses utiles et partager ses découvertes.