L'API, acronyme de "Application Programming Interface" (Interface de Programmation d'Application), permet à un fournisseur de services d'exposer ces derniers à un consommateur.
Dans le monde de la programmation, les APIs se reposent sur le protocole HTTP/HTTPS et manipulent généralement le json (un peu moins le XML) pour les données.
Une API est :
- Une URL constituée d'un hostname (nom DNS) et d'une ressource (exp. article, commande, ticket, ....)
- Un verbe HTTP, généralement un POST, GET, PUT, PATCH et DELETE pour renseigner l'action sur la resource
- Des données en entrée et en sortie pour l'échange de données
- Des headers et des paramètres de requête pour l'ajout de metadata et le filtrage
- Un code HTTP de retour pour indiquer le résultat d'une requête (succès, échec, redirection, ...)
L'API est donc un moyen d'échanger les données entre fournisseurs et consommateurs afin de manipuler des ressources.
De l'API Soap vers API Rest, un peu d'histoire
Le terme " REST " a été défini dans la thèse de doctorat de Roy Fielding en 2000 à l'Université de Californie, Irvine.
À cette époque, SOAP, ou "Simple Object Access Protocol", était le moyen le plus répondu pour mettre en œuvre les APIs.
Cependant, effectuer un appel API n'était pas chose simple en utilisant le protocole SOAP. un développeur doit créer/manipuler un fichier XML complexe en faisant référence à un document de définition encore plus complexe appelé WSDL, le langage de description de services Web.
Fielding et ses collègues ont conçu le style architectural REST tandis que la version 1.1 de HTTP était en cours de conception. Ils ont vu une opportunité d'utiliser les concepts HTTP pour créer un modèle plus simple et plus familier pour les API.
Les API REST exploitent le protocole HTTP et ses concepts tels que les URL, les verbes et les codes de statut.
Lorsqu'une API est conçue à l'aide du style REST, nous l'appelons API RESTful.
Pourquoi utiliser les APIs
Historiquement, l'échange de données se fait par échanges de fichiers en utilisant un canal de diffusions plus ou moins sécurisé ou fiable (envoi par mail, ftp/sftp, ...). Cela implique des problèmes de sécurité et aussi d'uniformité des échanges.
Les APIs offrent un moyen standard pour qu'un fournisseur expose ses services d'une manière uniforme à tous ses consommateurs.
D'un point de vu consommateur, l'API permet d'exploiter les données exposées par un fournisseur sans se soucier des technologies utilisées par le fournisseur pour cette exposition.
Les APIs sont une solution pour répondre aux défis liés à la sécurité, la réutilisation et le monitoring.