Qu'est-ce qu'une API (Application Programming Interface) ?

API est l'acronyme d'Application Programming Interface (interface de programmation d'application), une solution logicielle qui permet à deux applications de communiquer entre elles. Chaque fois que vous utilisez une application comme Facebook, que vous envoyez un message instantané ou que vous consultez la météo sur votre téléphone, vous utilisez une API.

Exemples d'API

Lorsque vous utilisez une application sur votre téléphone portable, l'application se connecte à Internet et envoie des données à un serveur. Le serveur récupère ensuite ces données, les interprète, effectue les actions nécessaires et renvoie les données à votre téléphone. L'application interprète alors ces données et vous présente les informations demandées de façon lisible. C'est à cela que sert une API : l'ensemble du processus passe par elle.

Prenons un exemple courant pour mieux l'expliquer.

Imaginez que vous êtes assis à la table d'un restaurant, avec le menu des plats disponibles. La cuisine représente la partie du « système » qui va préparer votre commande. Cependant, il manque le lien essentiel qui permet de communiquer votre commande à la cuisine et de servir votre repas à votre table. C'est à ce moment-là que la serveuse ou l'API intervient. La serveuse (l'API) est le messager qui prend votre commande (votre demande) et indique à la cuisine (au système) ce qu'il faut faire. Ensuite, la serveuse vous apporte la réponse (en l'occurrence, votre plat).

Voici un exemple concret d'API. Vous savez peut-être comment rechercher des vols en ligne. Tout comme au restaurant, vous avez le choix entre tout un éventail d'options : différentes destinations, dates de départ et de retour, et plus encore. Imaginons que vous réserviez un vol sur le site web d'une compagnie aérienne. Vous choisissez une ville et une date de départ, une destination, une date de retour, la classe de la cabine, ainsi que d'autres options. Pour réserver votre vol, vous interagissez avec le site web de la compagnie aérienne pour accéder à sa base de données, voir si des sièges sont disponibles à ces dates et connaître le tarif.

Mais qu'en est-il si vous n'utilisez pas le site web de la compagnie aérienne, un canal avec un accès direct aux informations ? Que se passe-t-il si vous utilisez un service de voyage en ligne, comme Kayak ou Expedia, qui regroupe des informations provenant de plusieurs bases de données de compagnies aériennes ?

Dans ce cas, le service de voyage interagit avec l'API de la compagnie aérienne. Tout comme votre sympathique serveuse, l'API est l'interface qui peut être sollicitée par ce service de voyage en ligne pour obtenir des informations issues de la base de données de la compagnie aérienne, afin de réserver des sièges, des options de bagage, etc. L'API prend ensuite la réponse de la compagnie aérienne à votre demande et la renvoie directement au service de voyage en ligne, qui vous présente alors les informations les plus récentes et les plus pertinentes.

L'API fournit également une couche de sécurité

Les données de votre téléphone ne sont jamais totalement visibles pour le serveur. De même, le serveur n'est jamais totalement visible pour votre téléphone. À la place, ils communiquent par petits paquets de données et ne partagent uniquement ce qui est nécessaire, comme lorsque vous commandez un plat à emporter. Vous dites au restaurant ce que vous aimeriez manger, il vous indique ce dont il a besoin en retour et vous obtenez votre repas.

Les API sont devenues si précieuses qu'elles représentent une part importante des revenus de nombreuses entreprises. De grandes entreprises comme Google, eBay, Salesforce.com, Amazon et Expedia ne représentent qu'une infime partie des entreprises qui tirent profit de leurs API. L'« économie des API » correspond au marché des API.

L'API moderne

Au fil des années, la notion d'« API » a souvent décrit toutes sortes d'interfaces génériques de connectivité à une application. Cependant, plus récemment, l'API moderne a acquis certaines caractéristiques qui la rendent extraordinairement précieuse et utile :

  • Les API modernes adhèrent à des normes (généralement HTTP et REST) pratiques pour les développeurs, facilement accessibles et largement comprises.
  • Elles sont davantage considérées comme des produits que comme du code. Elles sont conçues pour être utilisées par des publics spécifiques (comme les développeurs mobiles), sont documentées et font l'objet de versions permettant aux utilisateurs d'avoir de la visibilité en termes de maintenance et de cycle de vie.
  • Comme elles sont beaucoup plus normalisées, elles sont soumises à une discipline beaucoup plus stricte en matière de sécurité et de gouvernance. Leurs performances et leur mise à l'échelle sont également contrôlées et gérées.
  • Comme tout autre logiciel en production, l'API moderne possède son propre cycle de développement de logiciels (SDLC) incluant la conception, les tests, le développement, la gestion et les versions. Les API modernes sont également bien documentées concernant la consommation et la gestion des versions.