API, ces trois lettres qui peuvent faire peur aux néophytes mais que l’on croise pourtant bien souvent sur Internet, sont l’acronyme d’Application Programming Interface (Interface de programmation d’application). Le dernier mot de l’acronyme, "interface", devrait toutefois être évocateur pour plusieurs d’entre nous. Sans rentrer tout de suite dans le vif – technique - du sujet, un exemple commun donné pour rendre compte de ce qu’est une interface est la télécommande dédiée à manipuler une télévision. Autrement dit, il s’agit d’un outil simple d’utilisation permettant d’entrer en interaction avec un objet électronique (dans notre exemple, la télévision) en manipulant des boutons prévus, lors de la conception de l’interface, pour refléter les choix possibles donnés à l’utilisateur afin que celui-ci déclenche des opérations spécifiques, comme par exemple changer de chaîne.
Les exemples sont nombreux et les interfaces, au sens informatique du terme, nous les utilisons en réalité dans notre vie quotidienne. Mais lorsque l’on en vient à désigner le même processus d’échange d’informations entre des applications ou des logiciels (et non entre un humain et un logiciel), c’est de l’Application Programming Interface que nous parlons, les logiciels n’ayant pas, contrairement à nous humains, d’yeux pour rendre la seule interface capable d’opérer ce processus d’échange de données !
Utiliser une API: un gain de temps
Parlons de ce qui concerne Internet. Concrètement, l’API rend possible l'accès aux services d'une application et est généralement la propriété du détenteur du programme informatique en question. Prenons le cas d’un site Web qui nécessiterait qu’une API y soit intégrée pour offrir un service spécifique. Si par exemple un artisan désire créer un site Web pour l’utiliser comme un moyen de mettre ses produits en vente, il va avoir besoin d’y intégrer un système de paiement dédié à ses acheteurs potentiels. Le moyen le plus simple pour le faire consisterait à intégrer une API "extérieure", déjà existante, celle de PayPal par exemple, car concevoir un système de prise en charge de cartes bancaires serait fort complexe pour un non initié. Facile à trouver sur Internet, l’API de PayPal, pour pouvoir être mise en place dans le site Web de l’artisan, est dotée d’une documentation propre qui devra être consultée afin que ce service de paiement soit désormais accessible sur le site Web.
D’ailleurs, les API sont presque toujours dotées d’une documentation de leur code (un langage de programmation) élaborée par les développeurs. Très technique, la documentation indique notamment le pourquoi et le comment de l’écriture du code. Mais, ce qui est intéressant pour les développeurs, c’est que l'API leur permet de pouvoir utiliser une solution informatique, un programme déjà existant. N’ayant pas, ainsi, besoin de le redévelopper, ils n’ont pas à se soucier de son fonctionnement parfois très complexe.
La question de l’authentification
Plusieurs API sont utilisées par les sites Web, y compris les premiers auxquels nous pensons : Google, Facebook ou Amazon. Grâce à ces API, ces sites fournissent des données à d'autres sites Web. Ainsi, si vous vous êtes déjà connecté à une application ou à un service à l'aide de vos paramètres d'identification Facebook ou Google, vous êtes en présence d'une API.
Et, de même que l’utilisation d’un distributeur de billets de banques nécessitera la mise à disposition de vos informations d’identification (la carte bancaire elle-même, et son code), de même, avec une API, vous devrez envoyer une demande au système avec vos identifiants afin d’avoir accès aux données demandées. En effet, pour que les données mises à disposition par les API puissent être utilisées, une clé d’API est demandée. Par exemple, pour qu’une carte Google Maps puisse être affichée sur votre site Web, il est nécessaire de posséder une clé d'API, en disposant notamment d'un compte Gmail.
Notons enfin qu’une API peut également rendre disponibles, en plus de certaines données, des services ou des fonctionnalités. Si vous souhaitez par exemple procéder à un envoi massif d’e-mails, alors, plutôt que de concevoir un serveur de messagerie, il est possible d’avoir recours à l’API de plateformes comme Sendinblue ou Sendgrid qui ne nécessitent aucune connaissance technique pour procéder à une grande campagne d’e-mailing.