Définition API | Application Programming Interface

Share on twitter
Share on linkedin
Share on facebook
Share on reddit
Share on email
Share on telegram
Share on whatsapp

Qu’est-ce qu’une interface de programmation ?
Une explication simple mais complète !

Notre connectivité au monde a changé notre façon de consommer. Nous sommes tous habitués à cette connectivité instantanée qui met le monde au bout de nos doigts. De l’ordinateur à quelconque objet connecté, nous pouvons acheter, poster, partager, …, à n’importe qui, n’importe quand, indépendamment de la distance qui nous sépare. “Nous sommes connectés au monde plus que jamais auparavant.”

Vous vous êtes déjà posé la question de “Comment ça marche ?” ? : 

– Comment votre téléphone arrive à vous géolocaliser lorsque vous utilisez une application ? 

– Comment votre application météo arrive à vous donner les informations sur le temps qu’il fera lors de votre prochain voyage ?

– Comment vous pouvez voir le chauffeur Uber se déplacer en temps réel sur la carte ? 

– Comment votre application mobile préférée fonctionne ?

– Qu’est-ce qui se passe lorsque vous cliquez sur le fameux bouton Facebook Connect ?

Ici l’exemple de l’application Trainline, permettant d’acheter son billet de train sur 84 compagnies ferroviaires en Europe ! En France, ce n’est pas un service de la SNCF, par contre, l’application utilise les APIs de la SNCF pour afficher les données de cette dernière.

La réponse : les interfaces de programmation applicatives ou Application Programming Interface en anglais, soit les initiales de A-P-I.

Mais ... c'est quoi une api ? Une API est le messager qui vous permet d'échanger des données. Elle prend des requêtes et va informer le système sur ce que vous souhaitez faire puis vous donner une réponse instantanée, en temps réel.

Vulgariser les APIs

Prenons l’exemple connu du serveur au restaurant pour imager ce qu’est une API : 

Imaginez-vous être assis à table au restaurant.

Vous avez devant vous un menu avec différents plats. 

La cuisine est la partie du « système » qui va préparer le plat que vous commandez. 

Ce qui manque est le lien critique qui permet de communiquer votre commande à la cuisine et de vous servir à table par la suite. 

⇒ Le serveur joue ce rôle de messager en prenant votre requête et en la communiquant au système. Une fois le plat préparé, le serveur vous délivre la réponse : votre plat ! 

Une autre image ? Pourquoi pas celle de la prise électrique : 

Un appareil, pour fonctionner, doit être relié au réseau électrique.

Le fournisseur d’électricité produit et distribue son service (l’électricité) à travers l’infrastructure qu’est le réseau électrique.

L’appareil, qui est consommateur du service, va être branché à une prise électrique pour fonctionner.

La prise est standard (au détail des normes par pays), ce qui permet à n’importe quel service ayant besoins d’électricité de s’y connecter.

⇒ La prise électrique est l’interface (API) à travers laquelle l’appareil (une app mobile, une solution SAAS, par exemple) consomme un service (des données).

Une API, à quoi ça sert ?

A son niveau le plus simple, une API permet à votre produit / service de communiquer à d’autres produits ou services.

Elle permet d’ouvrir et d’échanger vos données et fonctionnalités à des tiers – au sein de votre entreprise, avec vos partenaires et au grand public. Elles deviennent rapidement le nouveau standard par lequel les sociétés échangent des données et créent des expériences cross-canales.

L’un dans l’autre, utiliser une API offre la possibilité d’utiliser l’existant pour gagner du temps en évitant d’avoir à re-développer des applications :

=> Module de paiement Stripe,

=> Intégration d’une Maps Google dans votre applicatif,

=> Facebook Connect

Les APIs vous permettent de penser et concevoir votre site / application dans une approche moderne et plus ouverte. En d’autres termes, au lieu de développer vous-même l’intégralité des services directement sur votre applicatif (module de paiement, …) : vous pouvez venir greffer des services externes sous un format “plug and play” via des APIs.

⇒ Gain de performance

⇒ Gagner du temps pour innover plus rapidement

Avec les APIs, les applications communiquent les unes avec les autres sans que l’utilisateur en ait conscience et n’ait à intervenir. Si l’on prend le processus de paiement en ligne ; lors d’une vente, le site web e-commerce va utiliser une API pour envoyer les données bancaires à l’intermédiaire financier, qui lui, a les ressources pour vérifier la véracité des informations et confirmer le paiement. Une fois que c’est confirmé, l’intermédiaire va renvoyer un « OK » pour la validation du paiement. Ce processus a lieu quasiment instantanément.

L’objectif d’une API est de fournir une porte d’accès à une fonctionnalité en cachant les détails de la mise en œuvre.

Elles permettent aux développeurs de s’abstraire de l’ingénierie du système d’information avec lequel ils doivent communiquer.

En effet, ce système peut être ancien (legacy) ou moderne, avec un format de base de données ou un autre, peu importe, les API sont standards à l’instar d’une prise électrique !

En étant accompagnées par une documentation, on a plus besoin de connaître le logiciel / programme que l’on souhaite exploiter : on utilise son ensemble de  fonctions et c’est tout.

Décomposer l'acronyme API

Aidons-nous d’une analogie : l’utilisation d’un distributeur de billets pour déposer et retirer de l’argent à la banque.

APPLICATION : quand vous souhaitez utiliser un distributeur, vous vous attendez à ce que la machine puisse accéder à votre compte en banque et procéder à une transaction comme retirer de l’argent.

Comme un distributeur : une application possède une fonctionnalité mais ne fait pas tout par elle-même, elle doit communiquer à la fois avec l’utilisateur et avec la « banque » à laquelle elle souhaite accéder !

PROGRAMMING : des APIs permettent aux distributeurs de communiquer avec la banque. La phase de programmation est la partie d’ingénierie du logiciel qui permet de transformer un input en un output / entrée en sortie. Dans d’autres termes, il s’agit de traduire votre requête de retrait d’argent dans la base de données de la banque. Elle-même qui vérifie qu’il y a suffisamment d’argent sur votre compte pour donner sa permission. Suite à ça, le distributeur communique à nouveau vers la banque pour indiquer combien vous avez retiré et qu’elle puisse mettre à jour votre balance.

INTERFACE : c’est comment vous allez interagir avec l’application. Dans le cas du distributeur il s’agit de l’écran, du pad, … L’interface est comment vous communiquez avec la machine.

Ci-dessus l’exemple du retour d’une API avec les personnages de starwars, en appelant l’url : https://swapi.co/api/people/1?format=json

On voit une structure classique au format JSON, très lisible et exploitable même de quelqu’un qui ne connaîtrait pas starwars ou qui ne connaîtrait pas l’ingénierie du système qui fournit la donnée stockée derrière.

À retenir sur les APIs

À quoi ça sert ?

À connecter des applications informatiques, au sein d’une entreprise mais aussi entre des entreprises. Par exemple une entreprise qui fabrique des biens veut se connecter à des entreprises de livraison pour faire livrer ses produits, elle passera à travers la plateforme de ce transporteur, via une API.

Concrètement, ça ressemble à quoi ?

Une API est présentée sous la forme d’une URL, comme un site internet, mais sans couleurs, sans images, juste les données utiles, brutes. -> pour un exemple concret, cf : swapi.co

C'est nouveau ?

Non, c’est dans la famille des services web qui existent depuis le début des années 2000. Le terme API est également utilisé pour désigner les interfaces permettant de communiquer avec les driver des systèmes d’exploitation. Aujourd’hui, le terme API designe en réalité les web API, conventionné sous l’approche REST, on parle alors d’API REST.

La grande nouveauté c’est la standardisation. Donc tous les logiciels produits aujourd’hui s’efforcent d’être compatible API.

C'est une mode ou ça va durer ?

La standardisation fait que tout le monde les adopte, aussi le nombre d’API et d’interconnexions croissent en ce moment de façon exponentielle. Même si leur forme évoluera dans le temps, leur fonctionnement est à la base du web, autant que les sites web aujourd’hui.

Peut-on s'en passer ?

Difficilement, car sans API : on ne peut pas construire d’application mobile, pas avoir d’échange temps réel dans son système d’information ou avec l’extérieur (partenaire, etc…).

C'est comme l'EDI ?

Le but est le même, mais utiliser une API permet le temps réel et ne nécessite pas de logiciels propriétaires.

Puis-je ajouter une API sur un système ancien ?

Oui, moyennant un savoir-faire.

APIZR est spécialisé dans l’approche API over legacy, on ne casse pas l’existant, on construit au dessus.

Si je dois faire une API, qu'est-ce qu'il faut absolument que je prenne en considération ?

Le design tout d’abord, pour qu’une API soit réexploitable sur plusieurs projets (rationnalisation des développements, réduction du time to market pour mettre en place un projet). Pour être bien pensé, le design doit être fait avant de développer (approche Contract First), ce qui permet d’impliquer les métiers dans la démarche, définir les premières étapes de gouvernance de la donnée et avoir un schéma commun d’API pour toute l’entreprise.

Vincent Katchavenda

Vincent Katchavenda

Consultant Blockchain & Spécialiste des enjeux business autour des APIs

Laisser un commentaire

L'auteur

A propos d'Apizr

APIZR, accompagne les entreprises dans l'APIsation de leur système d'information, l'ouverture de leurs données afin de rendre plus agile les projets (+ de 50% des temps projet sont "perdus" à rendre accessible le SI) et de rationaliser les développements (nos APIs sont réexploitables entre vos projets mobile, site, objets connectés, etc...)

Nos dernières publications

Recevez les nouveautés Apizr

Nos coordonnées

  • APIZR - 1 rue de l’innovation 59030 Lille
  • contact@apizr.fr
  • +33 3 52 88 00 44

Nous contacter