Qu’est-ce qu’une API ?
Que sont les API ? Excellente question ! Les API sont des composants essentiels de notre monde numérique et assurent la réalisation de milliards d’expériences numériques par minute, chaque jour.
L’acronyme API signifie « Application Programming Interface », ou interface de programmation d’application. Une API est une solution logicielle qui permet à deux applications de communiquer entre elles. En d’autres termes, une API est le messager qui transmet votre requête au fournisseur de votre choix et qui vous renvoie ensuite sa réponse.
Une API définit des fonctionnalités qui sont indépendantes de leurs implémentations respectives. Ainsi, ces implémentations et définitions peuvent être différentes les unes des autres sans se compromettre. Par conséquent, une API correctement conçue facilite le développement d’un programme en fournissant ses briques de base.
Lorsque des développeurs créent du code, ils commencent rarement de zéro grâce au caractère réutilisable des API. Les API permettent aux développeurs de réutiliser des processus à la fois répétitifs et complexes à l’aide de peu de code. En réutilisant des API, les développeurs peuvent réduire le nombre de ces processus répétitifs et complexes, et accélérer considérablement le développement d’applications.
Il existe un écart grandissant entre ce que les équipes métier attendent des équipes informatiques et ce que ces dernières peuvent réellement accomplir. C’est ce que nous appelons l’écart de mise en œuvre des projets informatiques (IT delivery gap). Grâce à la réutilisation des API, les développeurs ont les moyens d’accélérer la réalisation des projets afin d’éliminer ce décalage et de répondre aux besoins de l’entreprise.
Grâce à la réutilisation des API, le développeurs n’ont pas besoin de réinventer la roue et de démarrer leur code de zéro à chaque fois qu’ils élaborent un nouveau programme ou projet.
Comment l’abstraction apportée par les API assure-t-elle vitesse et agilité ?
L’un des principaux avantages des API est qu’elles permettent l’abstraction d’une fonctionnalité entre deux systèmes. Un point d’accès à l’API (endpoint) dissocie l’application destinatrice de l’infrastructure fournissant un service. Du moment que la spécification de l’élément transmis du fournisseur de services au point d’accès reste inchangée, les applications qui dépendent de cette API ne sont pas censées remarquer les modifications apportées à l’infrastructure derrière le point d’accès.
Le fournisseur de services peut ainsi bénéficier d’une flexibilité sur les services qu’il propose. Par exemple, si l’infrastructure derrière l’API comprend des serveurs physiques situés dans un centre de données, le fournisseur de services peut aisément basculer sur des serveurs virtuels exécutés dans le cloud.
Si le logiciel exécuté sur ces serveurs (tel qu’un logiciel de traitement des transactions par carte de crédit) est par exemple écrit en langage Java exécuté sur un serveur d’application Java Oracle, le fournisseur de services peut le migrer vers une plateforme Node.js (JavaScript côté serveur) exécutée sur Windows Azure.
Nous sommes loin de l’époque où des intégrations point à point compliquées étaient nécessaires pour connecter des solutions d’entreprise, dont la gestion demandait du temps et des ressources. La connectivité fondée sur les API permet aux systèmes de changer avec autant de facilité que si vous deviez brancher un appareil dans une prise électrique. Ainsi, vous pouvez vous concentrer sur le développement de brique pour votre entreprise « composable ».
Comment les API fonctionnent-elles ?
Imaginez un serveur dans un restaurant. Vous, le client, êtes assis à une table avec un menu dans les mains, tandis que le cuisinier qui prépare le plat que vous avez commandé joue le rôle du fournisseur.
Vous avez besoin d’un lien pour communiquer votre commande au cuisinier et pour servir votre plat à votre table. Il ne peut pas s’agir du cuisinier, puisqu’il est occupé en cuisine. Vous avez besoin d’un élément faisant le lien entre le client qui passe commande et le cuisinier qui prépare la nourriture. C’est à ce moment-là que le serveur (ou l’API) intervient.
Le serveur prend votre commande et la communique au cuisinier. Il vous renvoie ensuite la réponse, dans notre cas, le plat cuisiné. Si l’API est conçue correctement, vous devriez recevoir votre commande sans encombre !
Exemple concret d’une API
Comment les API sont-elles utilisées concrètement ? Voici un scénario classique de l’économie des API en pratique : la réservation d’un vol.
Lorsque vous recherchez des vols en ligne, un menu vous permet de choisir différents critères. Vous sélectionnez une ville et une date de départ, une destination, une date de retour, la classe de la cabine, ainsi que d’autres options, comme les demandes relatives à votre repas, à votre siège ou à vos bagages.
Pour réserver votre vol, vous devez interagir avec le site web de la compagnie aérienne afin d’accéder à sa base de données, de voir si des sièges sont disponibles à ces dates et de connaître le tarif en fonction de la date, de la durée du vol, de la popularité de l’itinéraire, etc.
Vous devez accéder à ces informations depuis la base de données de la compagnie aérienne, que vous interagissiez avec elle sur le site web ou par le biais d’une agence de voyage en ligne qui regroupe les informations de plusieurs compagnies aériennes. Vous avez aussi la possibilité d’accéder à ces informations depuis un téléphone portable. Dans tous les cas, vous devez obtenir ces informations et l’application doit donc interagir avec l’API de la compagnie aérienne, qui lui donne accès aux données de cette dernière.
L’API est l’interface qui, de la même manière que le serveur de notre précédent exemple, exécute et transmet par internet les données de l’application que vous utilisez aux systèmes de la compagnie aérienne. Elle prend également en compte la réponse de la compagnie aérienne à votre demande et la renvoie directement à l’application de voyage que vous utilisez. De plus, à chaque étape du processus, elle facilite l’interaction entre l’application et les systèmes de la compagnie aérienne, de la sélection du siège au paiement et à la réservation.
Les API suivent ce processus pour toutes les interactions entre applications, données et appareils mobiles. Elles assurent la transmission de données d’un système à un autre, afin de créer une expérience connectée. Les API offrent un moyen standardisé d’accéder à une application, à des données ou à un appareil mobile, qu’il s’agisse d’utiliser des solutions cloud telles que Salesforce ou d’effectuer des achats depuis votre téléphone portable.
Types d’API
Il existe différents types d’API que vous devriez connaître. Par exemple, vous avez peut-être déjà entendu parler des API ou interfaces dans des classes Java qui permettent aux objets de communiquer entre eux dans le langage de programmation Java. Outre les API centrées sur les programmes, il existe également des API web telles que l’API SOAP (Simple Object Access Protocol), l’API RPC (Remote Procedure Call) et, sans doute la plus connue, du moins de nom, l’API REST (Representational State Transfer). De nouvelles technologies et de nouveaux styles d’API continuent de voir le jour régulièrement, comme GraphQL et AsyncAPI, entre autres. Selon Programmable Web, il existe plus de 15 000 API accessibles au public ainsi que plusieurs milliers d’API privées que les entreprises utilisent pour développer leurs capacités internes et externes.
Autres ressources sur les API
Vous connaissez maintenant les concepts de base sur les API et leur fonctionnement, mais il vous reste encore beaucoup de choses à découvrir à leur sujet. Consultez nos ressources sur les API pour en savoir plus à leur sujet ainsi que sur les bonnes pratiques en matière de conception et de gestion.
Si vous souhaitez en savoir plus, consultez nos ressources sur les API relatives aux définitions, à la conception et à la gestion.