Les API REST représentent l’un des grands apport de ces dernières années pour la mise en oeuvre des Systèmes d’Information.

Les API, ce n’est pas nouveau me direz vous. Certes, mais ces API n’ont rien à voir avec les bonnes veilles Application Programming Interface qui étaient liées aux langages de programmation et devaient donc exister en autant de versions que de langages à supporter.

Ces API REST ont l’avantage d’offrir un niveau d'indépendance jamais atteint entre le client (qui utilise l’API) et le service rendu par l’API.

Mieux encore, ces API peuvent coexister en plusieurs versions pour laisser aux clients le choix de suivre les évolutions de l’API ou de fonctionner en mode sarcophage sur d’anciennes versions (dans la limite de ce que le fournisseur d’API veut bien maintenir).

Une particularité majeure des API REST est leur protocole de communication HTTP qui leur donne la faculté d’emprunter des flux traditionnellement acceptés par les équipes sécurité car facilement “proxyfiables” et donc traçables.

Ce mode de fonctionnement “web” ou plus exactement basé sur des requêtes HTTP est donc par nature déconnecté et utilisable aussi bien en ligne de commande ( tous les bons shells ont un outil de requêtage web aujourd’hui, le plus connu étant CURL ) que depuis le code d’une application.

La spécification de telles API obéit aujourd’hui à un standard nommé OpenAPI actuellement dans sa version 3 et qui permet, avec des outils comme Swagger, de générer automatiquement des squelettes de code pour différentes technologies et langages ainsi que sa documentation.

Le code peut être généré aussi bien pour le serveur qui va implémenter les services que pour les clients qui vont les consommer.

Avec un découpage de vos systèmes en multiple petites API par domaine fonctionnel vous pouvez progressivement construire une architecture micro-services hautement flexible, scalable et bien outillée pour sa supervision et son administration.

Enfin, la nature “web” de ces API associé à la mise en place d’un système de gestion d’API (API Management), rend possible leur ouverture à des partenaires multiples (projets Blockchain par exemple) voire à leur monétisation puisque la valorisation des données est une idée généralement admise aujourd’hui.

Tous ces apports expliquent pourquoi les API sont devenues l’une des technologies incontournable de la Transformation Digitale.