Accueil
A propos
Services
Portfolio
Manifeste
Contact
Thesaurus
Talents
Hub
Design
Qu Est Ce Qu Une API

Qu'est-ce qu'une API ?

L'interface de programmation d'application (API) permet de communiquer entre un utilisateur et un fournisseur, elle rend disponible des données ou des fonctionnalités par d'autres applications.

Publié le 22/03/2023
Olivier Lacombe
Temps de lecture : 5 minutes

tl;dr

Les API sont des ensembles de fonctionnalités qu'une application peut mettre à disposition d'autres programmes. Il y a deux types d'API : les dictionnaires de fonctionnalités et les webservices. Les webservices sont les plus utilisées et comprennent trois types : SOAP, REST et désormais GraphQL.

I. Ne pas confondre API et API 

Basiquement, l’API ou Application Programming Interface d’une application est un ensemble de fonctionnalités organisé et structuré qui peut être mis à disposition d’autres programmes.

Il existe deux principaux types d’API :

  • Les API que l’on peut considérer comme étant le dictionnaire des fonctionnalités d’un programme. Dans ce cas, nous pouvons également appeler ça un référentiel.
  • Les API dites Webservices qui représentent un ensemble de fonctionnalités pouvant être appelées par d’autres applications (les vôtres ou celles de partenaires) via Internet.

Ici, c’est les API dites Webservices qui nous intéressent.

II. Les différentes natures d’API/webservices

Dans l’univers du web, le point de départ, c’est le SOAP. Il s’agit d’un protocole HTTP mis au point à la fin des années 90. Exclusivement basé sur le XML, ce protocole permet de structurer fortement les échanges mais il a un très gros inconvénient : le poids des flux échangés.

En effet, le XML est très verbeux. A titre d’exemple, pour récupérer une liste de vols pour une destination, nous pouvons facilement atteindre les 500 voir 1 000 Ko (1 méga)... c’est juste énorme. Ceci-dit, et nous le voyons tous les jours, le XML permet de contrôler les flux notamment avec les namespaces qui représentent une forme de modèle de validation.

Il existe une alternative intéressante, le REST. Mis au point en 2000 par Roy Fielding il est plus simple, moins structuré mais beaucoup, beaucoup plus léger, basé sur le JSON, et qui peut également retourner d’autres formats : JSON, XML, HTML, CSV… Autre point important, le JSON (JavaScript Object Notation) offre l’énorme avantage d’être directement interprété par le javascript, langage devenu universel avec la mort de Flash et l’arrivée des applications All-in-One.

Mon opinion ? Le SOAP est devenu une solution trop contraignante. A cause du poids des flux XML, il est impensable de s’en servir pour échanger des informations avec un smartphone sur un réseau GSM où le débit peut être très limité. C’est pourquoi, nous privilégions systématiquement les API REST… Mobile first ;)

A découvrir

III. Fonctionnement d'une API REST

Prenons un exemple : vous souhaitez créer une application mobile pour publier des offres que vos clients pourront acheter directement sur leur smartphone.

Le smartphone ne dispose que du catalogue, et encore, si vous vendez des voyages, vos clients devront interroger votre système d’informations pour savoir quel est le prix et si il y a de la disponibilité pour des dates données.

Du coup, votre application mobile doit pouvoir interroger votre programme de gestion. C’est là que les API REST entrent en jeu. L’application mobile va transmettre une requête à l’API qui va la traiter et retourner une réponse qui sera interprétée et s’affichera sur l’interface du smartphone.

A ce stade, on pourrait se dire que n’importe qui peut accéder à vos informations. Oui ... et non.

  • Oui, si vous pensez aux flux RSS dont le but est de diffuser une information maîtrisée.
  • Non, si il s’agit d’une API pour des achats, voire du paiement en ligne.

Dans ce cas, il existe plusieurs moyens de sécuriser les accès. Parmi les plus connus et utilisés, nous pouvons trouver différents protocoles d’identification :

  • Le plus basique est une simple clé d’API : une simple chaîne de caractères spécifique à chaque application tierce.
  • Plus compliqué, il y a l’Oauth ou l’Oauth2 : là, ça devient sécurisé car l’application qui souhaite accéder à votre API doit disposer à la d’une clé d’API, d’une clé secrète pour obtenir un jeton d’accès (ou token) qui sera communiqué à chaque appel.
Schéma simplifié d'utilisation d’une API
Schéma simplifié d'utilisation d’une API

Pour la petite histoire, l’Oauth a été mis en place par un groupe de travail au sein de Twitter au milieu des années 2000. Par la suite, de nombreuses autres entreprises ont suivi telles que Google, Facebook, Slack, Salesforce et bien d’autres.

Rajoutons un brin de complexité pour celles et ceux qui suivent encore ! Au niveau des API REST, il existe deux principaux types de requêtes :

  • CRUD comme Create, Read, Update et Delete qui permet d'interagir avec vos modèles de données. Bien souvent, cela correspond basiquement aux tables de votre base de données ;
  • RPC (Remote Procedure Call) qui va permettre d’appeler une procédure bien particulière.

Souvenez-vous, lorsque nous parlions du SOAP qui offre un avantage particulier offert par l’utilisation du XML et des namespaces… Nous aurions pu penser que les API REST étaient limitées de ce point de vue… C’était sans compter l’apport d’un code source bien fait qui vérifie les valeurs transmises, voire la nature des objets et qui peut détecter des erreurs.

IV. GraphQL

Une API GraphQL est un type d'API (mise au point par les équipes de Facebook en 2012) qui permet aux clients de demander exactement les données dont ils ont besoin, et rien de plus, en utilisant un langage de requête flexible et puissant appelé GraphQL.

Voici comment cela fonctionne généralement :

  • Le client envoie une requête GraphQL à l'API en spécifiant les champs de données dont il a besoin, ainsi que les arguments pour filtrer et trier ces données.
  • L'API analyse la requête GraphQL et répond avec les données demandées dans la structure exacte demandée par le client.
  • Le client reçoit la réponse de l'API et peut utiliser les données pour afficher des informations à l'utilisateur ou effectuer des opérations supplémentaires.

L'avantage de GraphQL est qu'il permet aux clients de spécifier exactement ce dont ils ont besoin, ce qui évite de surcharger le réseau avec des données inutiles. Il permet également aux clients de récupérer plusieurs types de données dans une seule requête, ce qui peut améliorer les performances et réduire le nombre de requêtes nécessaires pour obtenir toutes les données nécessaires.

A découvrir

Finalement

En conclusion, les API représentent un outil essentiel dans la conception d'applications modernes, permettant aux programmes de communiquer entre eux et d'échanger des données de manière sécurisée. Bien qu'il existe différents types d'API, les API REST basées sur le protocole HTTP et le format JSON sont de plus en plus privilégiées en raison de leur légèreté et de leur simplicité par rapport aux API SOAP basées sur XML.

Les API GraphQL, bien qu'extrêmement performantes sont toutefois relativement peut utilisées en dehors de l'univers tech.

A propos de l'auteur

Olivier Lacombe
Président et fondateur de Nimiscient

Olivier est un passionné d’innovation, avec plus de 20 ans d’expérience, il est devenu un véritable ninja de l’optimisation des performances business des entreprises.

Sa créativité débordante lui permet d’aborder chaque projet avec une vision unique et authentique. C’est un magicien avéré de l’efficacité, capable de transformer chaque défi en une opportunité pour les entreprises qui font appel à lui.

A propos de Nimiscient

Nimiscient accompagne les entreprises dans leurs recherches de performance au travers des applications connectées et intelligentes.

Ainsi, nous aoportons les meilleurs leviers de productivité au cœur des entreprises grâce aux nouvelles technologies, à l’innovation et la créativité.

Partager cette page
Thesaurus