Les interfaces de programmation d’applications, ou API, ont le vent en poupe.

Bien que les API ne soient pas nouvelles, des phénomènes récents tels que l’accélération de la transformation numérique pendant la pandémie de COVID-19, le renforcement des intégrations logicielles et les efforts visant à migrer les applications existantes vers des plateformes cloud ont entraîné une prolifération des API continue, qui a des répercussions sur la gestion, la sécurité et même les choix architecturaux des organisations souhaitant réussir dans l’économie numérique moderne.
Les API peuvent, par essence, symboliser l’avènement des machines. Heureusement, les humains gardent encore le contrôle de leur conception, de leur gestion et de leur sécurité (du moins pour l’instant).

Fondamentalement, dans le « jargon des API » (si l’on peut dire), le consommateur envoie généralement des requêtes ou des demandes au producteur, par l’intermédiaire d’interfaces unifiées reposant sur différentes normes, différents schémas et différentes spécifications.
Par exemple, le National Weather Service (le « producteur ») fournit des données météorologiques quotidiennes. L’application météo de votre téléphone (le « consommateur ») appelle, ou plus précisément interroge, ce système via l’API REST WeatherKit, puis affiche les données dans son interface utilisateur. Bien qu’il s’agisse d’un exemple simple d’application populaire utilisée par des millions d’utilisateurs, il convient de noter que les communications de machine à machine représentent la majeure partie du trafic des expériences numériques modernes et qu’elles reposent sur les API.

Les API offrent de nombreux avantages technologiques qui se traduisent par une réelle valeur ajoutée pour l’entreprise :
Avantage technologique | Valeur commerciale |
Abstraire l’implémentation sous-jacente d’une application web. | Les organisations peuvent déployer rapidement des applications mobiles et des architectures basées sur des microservices. |
Spécifiez les types afin que les développeurs puissent implémenter des clients d’API à l’aide d’outils. | Les dirigeants peuvent optimiser les processus de développement afin de réduire les délais de mise sur le marché. |
Définir la sémantique et le comportement afin de modéliser un échange d’informations cohérent et prévisible. | Les partenaires peuvent développer et monétiser des intégrations tierces. |
En ce qui concerne la mise en œuvre des API, plusieurs aspects doivent être pris en compte, notamment la modélisation, la gestion des versions et les tests de contrat, qui permettent de découpler les dépendances et de garantir l’interopérabilité lors de la conception, du développement et de la maintenance.
Contrepartie | Description | Avantage |
Modélisation | La sémantique ou le comportement permettant de représenter et de structurer l’échange d’informations. | Gestion simplifiée des architectures distribuées. |
Gestion des versions | Stratégies de gouvernance pour la publication et la maintenance tout au long du cycle de vie de l’API. | Convivialité maximale et rétrocompatibilité. |
Tests de contrat | Interaction définie et réponses attendues entre le consommateur et le producteur. | Interactions déterministes avec des intégrations métier tierces. |
Il n’existe pas de bonne ou de mauvaise façon de créer, de gérer et de sécuriser une API. En fait, lorsque les API ont commencé à se multiplier, il est devenu nécessaire de normaliser leur forme et leur structure afin de pouvoir les utiliser à grande échelle. C’est ainsi qu’est née l’initiative OpenAPI, qui a donné lieu à la spécification OpenAPI (OAS). Swagger était l’implémentation de référence initiale de la spécification OpenAPI, et la plupart des outils ont désormais adopté OpenAPI, qui n’a rien perdu de son panache (HA !)
En réalité, une API peut être conçue à l’aide de diverses normes, de différents schémas et de plusieurs spécifications. Par exemple, une présentation RESTful, un service gRPC et des connexions à un schéma GraphQL.
Mise en œuvre

Vue d’ensemble
Le transfert d’état représentationnel (REST) fournit un modèle architectural léger permettant de décrire des interfaces uniformes, le plus souvent en utilisant HTTP comme protocole de transport sous-jacent.
REST est de loin l’implémentation la plus répandue des architectures basées sur des API.
Avantages
- REST repose sur quelques règles très simples, avec une faible barrière à l’entrée et un modèle de domaine robuste, ce qui le rend relativement facile à mettre en œuvre.
- En tant que système en couches, REST masque la complexité des systèmes sous-jacents à son interface. Par exemple, le consommateur ignore qu’il interagit avec un système de base de données par l’intermédiaire d’un service web.
- REST prend en charge de manière flexible différents types de contenu (notamment JSON et YAML).
Quand l’utiliser
- Lorsque la spécification OpenAPI suffit à communiquer aux utilisateurs la forme et la structure des API.
- Lorsque la mise en cache doit être déterminée dynamiquement en fonction des en-têtes HTTP, car les requêtes du producteur vers le consommateur sont sans état par défaut.
- Lors de l’extension d’un modèle de ressource pour une API unique fournie par le producteur, ou de la mise à disposition de plusieurs API sur la même URL de base à l’aide de passerelles API.

GraphQL est un langage open source d’interrogation et de manipulation de données pour les API, ainsi qu’un environnement d’exécution permettant de traiter ces requêtes à partir de données existantes (développé par Facebook et désormais intégré à la Linux Foundation).
- Fournit un langage de requête permettant d’interroger plusieurs sources.
- Permet aux clients de demander précisément les champs nécessaires, y compris ceux provenant de plusieurs API, réduisant ainsi le temps de chargement initial.
- Le langage de schéma définit les types de chaque API ainsi que la manière dont les API se combinent, ce qui permet de proposer une version unique pour l’ensemble des API et simplifie ainsi la gestion des versions.
- Comme technologie complémentaire venant se superposer aux systèmes existants pour en masquer la complexité.
- Lorsqu’un consommateur d’API a besoin d’un accès, d’un filtrage et de fonctionnalités de requête uniformes sur un large éventail de services interconnectés.
- Avec les appareils mobiles, qui sont limités par la taille réduite de leur écran et la disponibilité du réseau.

gRPC est un framework moderne, open source et hautement performant d’appel de procédure à distance (RPC), placé sous l’égide de la Linux Foundation.
- Des performances élevées et une grande fiabilité grâce à l’utilisation de HTTP/2, de tampons de protocole légers, de charges utiles sérialisées et d’implémentations avec état.
- Prise en charge modulaire de l’équilibrage de charge, du traçage, des contrôles d’intégrité et de l’authentification.
- Grande interopérabilité des fonctions d’interface et des messages, avec une prise en charge complète des outils pour tous les langages.
- Pour le dernier kilomètre de l’informatique distribuée, afin de connecter les appareils, les applications mobiles et les navigateurs aux microservices backend, ainsi que pour les applications multiplateformes permettant des interactions entre mobiles, ordinateurs de bureau et objets connectés.
- Pour le trafic interconteneurs (« Est-Ouest »).
- Pour les interfaces externes (« Nord-Sud ») nécessitant la diffusion en continu, ainsi que pour les applications en temps réel telles que les messageries instantanées et les applications financières ou d’actualités.
Après cette introduction aux principes fondamentaux des API, nous verrons dans les prochains articles comment concevoir, gérer et sécuriser une architecture d’API, avant de mettre ces connaissances en pratique en migrant une application existante vers une plateforme cloud.

Vous souhaitez prendre une longueur d’avance ? Téléchargez l’e-book dès aujourd’hui :
Maîtriser l’architecture des API | eBook O'Reilly
À propos de l’auteur

Articles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.