API, trois lettres qu’on croise souvent sur le web et dont on ne connaît pas forcément le sens. Une API pour application programming interface permet à deux applications de communiquer entre elles. Nous allons voir comment et pourquoi la notion d’API a autant le vent en poupe dans le monde du développement web.
API, vous avez dit API ?
Une API permet de rendre disponibles les données ou les fonctionnalités d’une application existante afin que d’autres applications les utilisent. Voici qui devrait rendre la notion d’interface de programmation applicative plus claire 😊
Utiliser une API permet donc d’utiliser un programme existant plutôt que de le re-développer. C’est donc un grand gain de temps à la clé.
Ce que peut faire une api concrètement
La première chose que fait une API, c’est qu’elle expose, autrement dit, elle rend disponibles des fonctionnalités ou des données. Pour les utiliser, la plupart des API requièrent une clé (API key), voire parfois deux. Cette clé permet à l’API de vous identifier comme étant un utilisateur ayant les droits nécessaires pour se servir de l’API.
Cette question d’authentification est cruciale quand on parle d’API. Prenons un exemple concret : à l’agence Debord, lorsqu’un formulaire de contact est envoyé, cela envoie les données de ce contact à notre espace client. Cet espace client, nous l’avons conçu avec une API afin de permettre à d’autres applications (notre site web, en l’occurence) d’y enregistrer des données. Que se passerait-il si cet enregistrement n’était pas soumis à des règles de sécurité ? Eh bien, n’importe qui pourrait enregistrer n’importe quoi dans notre espace client. Dans notre cas, chaque envoi de données via l’API de l’espace client réclame une authentification. Ainsi cela permet de valider que les informations à enregistrer proviennent bien de notre site internet et pas d’ailleurs.
Exposer des données
Une des principales fonctionnalités qu’on retrouve quand on utilise une API est l’exposition de données. Cela signifie que les contenus d’un site (pages, articles) sont accessibles grâce à des endpoints, dans un format de données structurées. Concrètement, en se rendant à une certaine URL vous aurez les données d’un site au format JSON. De nombreux sites font cela de façon native, parfois sans que vous le sachiez.
A quoi cela ressemble ? Voici un exemple de l’API proposée par le site data.gouv.fr
Si cela peut sembler intimidant pour le non-technicien, cette page permet de récupérer les données inscrites, dans un format standardisé, et de les afficher n’importe où ailleurs.
Vous pouvez alors imaginer un site exposant des informations, lesquelles seront récupérées depuis un ou plusieurs site.
Un exemple concret ? Imaginons Madame Durand qui a 5 agences immobilières avec 5 sites internet différents. Elle peut alimenter chacun de ses 5 sites avec une seule API regroupant toutes ses annonces. Chaque site ira alors chercher (vous trouverez en anglais l’expression “ fetch data “) les annonces adéquates selon le code postal. Ainsi Madame Durand n’a plus à mettre à jour 5 sites mais seulement son seul back-office d’annonces. Pratique, n’est-ce pas ?
Exposer des services
En plus d’exposer des données, une API peut également exposer des services, des fonctionnalités. Imaginons que vous souhaitiez faire un envoi massif d’emails, dans ce cas, plutôt que de louer et de configurer un serveur de messagerie, vous pouvez utiliser l’API d’un service comme Sendgrid. Concrètement, quand un formulaire part de ce site, un email m’est envoyé, utilisant l’API de Sendgrid. Sendgrid, m’offre des garanties sur la déliverabilité de mon email et des statistiques quant à sa réception. Cela permet donc d’avoir un service très performant à un coût très faible, car Sendgrid vous offre même l’envoi de 40.000 emails gratuitement !
Autre exemple : quand sur un site, vous avez un formulaire avec un champ adresse. Parfois en tapant l’adresse ou le code postal, le formulaire vous suggère une adresse préformattée. Pour cela on peut utiliser l’API de Google Places.
Les différents types d’API
Une API peut être consultable par tous, sans authentification, on parle alors d’une API publique. C’est notamment le cas des API géographiques du gouvernement français. Par exemple, l’API de geo.api.gouv.fr permet d’obtenir publiquement des informations sur les communes de France, simplement en consultant une url :
curl 'https://geo.api.gouv.fr/communes?codePostal=78000'
Mais une API peut être consultable à condition de s’authentifier, grâce à une clé ou un jeton d’authentification (JSON Web Token). Dans ce cas, on parle d’API privée.
Enfin, les API peuvent se différencier par leurs approches :
- les API SOAP (Simple Object Access Protocol) : cette approche est de moins en moins utilisée,
- les API REST (Representational State Transfert) : il s’agit de l’architecture la plus utilisée aujourd’hui,
- les API GraphQL, ce nouveau style d’architecture d’API développé par Facebook propose une alternative à REST
De nouvelles façon de concevoir une application
Enfin, utiliser une API permet de concevoir son site ou son application de façon plus moderne et moins monolithique. Cela permet un gain de performance et offre de plus grandes possibilités d’évolution. A ce sujet, lisez notre article précédent consacré au découplage de site internet, qui contient de nombreuses informations sur ce point.
De nouvelles opportunités de business
Enfin, la généralisation des API représente également de nouvelles opportunités. Aujourd’hui, des entreprises sont créées avec une offre consistant en la mise à disposition d’une API. Le client paye alors un abonnement pour accéder à cette API et l’utiliser. Dans votre propre secteur, vous pouvez penser à une API exposant des données ou des fonctionnalités qui pourraient être réutilisées par les entreprises de votre branche. Dès lors, vos concurrents d’aujourd’hui deviendront vos clients de demain 😎
Toutes données ou fonctionnalités peuvent potentiellement être transposées en une API, il n’y a plus qu’à les imaginer !