Qu'est-ce qu'une API ? L'interface entre systèmes logiciels expliquée
Une Application Programming Interface (API) permet à deux systèmes logiciels de communiquer via des signaux convenus à l'avance. Des applications météo aux services cloud : sans API, les logiciels modernes ne fonctionnent pas.
Points clés
- Une API est une connexion entre des ordinateurs ou des programmes logiciels, qui leur permet de communiquer via des signaux convenus.
- Une API dissimule le fonctionnement interne d'un système et n'expose que les parties dont un développeur a besoin.
- Le terme « API » désigne aujourd'hui principalement les web-API, qui permettent la communication entre ordinateurs via Internet.
- Le concept d'API remonte aux années quarante, bien que le terme lui-même ne soit apparu que dans les années soixante et soixante-dix.
Qu'est-ce qu'une API ?
Une Application Programming Interface (API) est une connexion entre des ordinateurs ou des programmes logiciels. C'est un type d'interface logicielle qui offre un service à d'autres programmes. Une API — à la différence d'une interface utilisateur — n'est pas destinée aux utilisateurs finaux, mais à la communication de machine à machine : c'est la partie « immergée » d'un système logiciel.
Une API ouvre un système logiciel aux interactions extérieures. Via des signaux mutuellement convenus, deux systèmes peuvent communiquer par-delà une frontière — une interface. Les appels qui constituent une API sont également appelés sous-routines, méthodes, requêtes ou endpoints.
Une caractéristique importante d'une API bien conçue est l'abstraction : le système dissimule ses détails internes et n'expose que les éléments dont un développeur a besoin. Cela simplifie la programmation et permet aux détails internes d'évoluer sans que l'interface externe doive changer.
Construire des logiciels avec des API est souvent comparé à l'assemblage de blocs de construction : les services logiciels ou bibliothèques individuels sont comme les blocs, et via leurs API, ils peuvent être assemblés pour former un nouveau produit. Cet assemblage s'appelle intégration.
Une API est également comparée à un contrat : un accord entre le fournisseur de l'API et les développeurs qui s'y fient. Si l'API reste stable, ou n'évolue que de manière prévisible, la confiance des développeurs augmente.
Qu'est-ce que cela signifie pour le BeNeLux ?
Comprendre ce qu'est une API et comment fonctionnent les accords (spécifications) constitue ainsi une connaissance de base pour toute personne impliquée dans les services numériques ou les achats de logiciels.
Formes courantes : des web-API aux systèmes d'exploitation
Bien que le terme API soit applicable dans un sens large — il existe aussi des API pour les langages de programmation, les bibliothèques logicielles, les systèmes d'exploitation et le matériel — il est en pratique le plus souvent utilisé pour les web-API. Ce sont des API qui permettent la communication entre ordinateurs via Internet. Elles constituent l'épine dorsale des services cloud modernes et des applications SaaS.
Un exemple concret tiré de la source : supposons qu'un capteur météo propose une API. Si un message particulier est envoyé au capteur (un API call), le capteur détecte les conditions météorologiques actuelles et renvoie un rapport météo (une API response). Une application météo peut intégrer plusieurs de ces API de capteurs pour compiler des données météorologiques sur une zone entière.
Spécification versus implémentation
Deux notions sont importantes autour des API :
- Spécification d'API : un document ou une norme qui décrit comment une connexion ou une interface doit être construite.
- Implémentation d'API : un système informatique qui satisfait à cette spécification et qui propose effectivement l'API.
Le terme « API » peut renvoyer aux deux. La documentation d'API — expliquant comment un développeur doit appeler chaque sous-routine — est une forme concrète d'une spécification d'API.
Bref historique
Le concept qui sous-tend l'API est plus ancien que le terme lui-même. Des informaticiens britanniques travaillaient déjà dans les années quarante sur une bibliothèque logicielle modulaire pour un ordinateur précoce, comprenant un « catalogue » expliquant chaque sous-routine — ce que nous appellerions aujourd'hui une spécification d'API.
Le terme « application program interface » (sans -ing) est apparu pour la première fois dans un article de 1968, présenté lors d'une conférence, où il décrivait l'interaction entre une application et le reste d'un système informatique. L'objectif était déjà à l'époque de rendre les programmes indépendants du matériel.
À l'origine, les API étaient uniquement associées à des programmes destinés directement aux utilisateurs finaux (programmes d'application). Aujourd'hui, le terme est plus large : il englobe également les logiciels utilitaires et même les interfaces matérielles.
Questions fréquentes
- Quelle est la différence entre une API et une interface utilisateur ?
- Une interface utilisateur relie un ordinateur à un être humain. Une API relie des ordinateurs ou des programmes logiciels entre eux, et n'est pas destinée à une interaction directe par un utilisateur final.
- Qu'est-ce qu'une web-API ?
- Une web-API est une API qui permet la communication entre ordinateurs via Internet. Le terme « API » est en pratique le plus souvent utilisé dans ce sens.
- Quelle est la différence entre une spécification d'API et une implémentation d'API ?
- Une spécification d'API est un document ou une norme qui décrit comment une connexion doit être construite. Une implémentation d'API est un système qui satisfait à cette spécification et qui propose effectivement l'API.
- Pourquoi une API dissimule-t-elle les détails internes ?
- Une API bien conçue n'expose que les éléments dont un développeur a besoin et dissimule le reste. Cela simplifie la programmation et garantit que les modifications internes du système n'ont pas besoin d'affecter l'interface externe.
- Quel est l'âge du concept d'API ?
- Le concept remonte aux années quarante, lorsque des informaticiens britanniques travaillaient sur une bibliothèque logicielle modulaire accompagnée d'un catalogue — ce que l'on appellerait aujourd'hui une spécification d'API. Le terme lui-même n'est apparu que dans les années soixante et soixante-dix.