Les API connectent les applications par le biais de protocoles et d’architectures clairs. Une architecture d’API est un cadre de règles pour la création d’interfaces logicielles. Les règles déterminent comment fournir la fonctionnalité du serveur aux utilisateurs. Le type d’architecture détermine les règles et les structures qui régissent l’API.


Il existe de nombreux types d’architecture d’API, de REST à RPC. En savoir plus sur leur structure et leur composition vous aidera à en choisir une pour votre application.

1. REST

Les API REST sont modernes et constituent l’architecture d’API la plus utilisée par les développeurs. REST (representational state transfer) est une architecture utilisée pour concevoir des applications client-serveur. Il ne s’agit pas d’un protocole ou d’une norme, vous pouvez donc l’implémenter de différentes manières. Cet aspect augmente votre flexibilité en tant que développeur.

Diagramme RESTAPI2

REST permet d’accéder aux données demandées stockées dans une base de données. Vous pouvez exécuter les fonctions CRUD de base avec une API REST. Lorsque les clients demandent du contenu via une API RESTful, ils doivent utiliser les bons en-têtes et paramètres. Les en-têtes contiennent des métadonnées utiles pour identifier une ressource, comme les codes d’état et l’autorisation.

Les informations transférées via HTTP peuvent être sous forme de JSON, HTML, XML ou de texte brut. JSON est le format de fichier le plus couramment utilisé pour les API REST. JSON est indépendant du langage et lisible par les humains.

2. SOAP

Le protocole SOAP (Simple Object Access Protocol) est un protocole API officiel. Le World Wide Web Consortium (W3C) maintient le protocole SOAP, qui est l’une des premières architectures d’API. Sa conception facilite la communication entre les applications construites avec des langages et des plates-formes différents.

Le format SOAP décrit une API à l’aide du langage de description des services Web (WSDL). Il est écrit dans le langage de balisage étendu (XML). Le format impose des normes de conformité intégrées qui renforcent la sécurité, la cohérence, l’isolation et la durabilité. Ces propriétés garantissent des transactions de base de données fiables, ce qui rend SOAP plus adapté au développement des entreprises.

Diagramme d'architecture SOAP 1

Lorsqu’un utilisateur demande du contenu via une API SOAP, il passe par les protocoles de couche standard. La réponse est au format XML, que les humains et les machines peuvent lire. Comme les API REST, les API SOAP ne mettent pas en cache/stockent les informations. Si vous avez besoin des données plus tard, vous devez faire une autre demande.

SOAP prend en charge les échanges de données avec et sans état.

3. GraphQL

GraphQL est un langage d’interrogation pour une API. Il s’agit d’un runtime côté serveur qui exécute des requêtes sur la base d’un ensemble défini de données. GraphQL a des cas d’utilisation spécifiques. Son architecture vous permet de déclarer les informations spécifiques dont vous avez besoin.

Contrairement à l’architecture REST, où HTTP gère les demandes et les réponses du client, GraphQL demande des données avec des requêtes. Un service GraphQL définit les types et les champs de ces types, puis fournit des fonctions pour chaque champ et chaque type.

Illustration du diagramme GraphQL

Le service reçoit des requêtes GraphQL à valider et à exécuter. Tout d’abord, il vérifie une requête pour s’assurer qu’elle fait référence aux types et champs définis. Ensuite, il exécute les fonctions associées pour produire le résultat souhaité.

GraphQL est idéal pour certains cas d’utilisation comme l’extraction de données de plusieurs sources. Vous pouvez également contrôler l’extraction des données et réguler la bande passante pour les petits appareils.

4. Apache Kafka

Apache Kafka est une plateforme distribuée qui prend en charge le streaming d’événements. Le streaming d’événements est le processus de capture de données en temps réel à partir de sources. Les sources peuvent être des bases de données, des serveurs ou des applications logicielles. Le système Kafka se compose de serveurs et de clients. La communication se fait par le biais d’un protocole réseau TCP.

Vous pouvez déployer le système sur du matériel, des machines virtuelles et des conteneurs. Vous pouvez le faire sur site et dans des environnements cloud. Le système Apache Kafka capture les données, les traite et y réagit en temps réel. Il peut également acheminer les données vers une destination préférée en temps réel. Kafka capture et stocke les données dans le système, que vous pouvez récupérer ultérieurement pour les utiliser.

Illustration du diagramme Apache Kafka

Kafka prend en charge un flux et une intégration continus des données. Cela garantit que les informations se trouvent au bon endroit, au bon moment. Le streaming d’événements peut s’appliquer à de nombreux cas d’utilisation qui nécessitent des flux de données en direct. Il s’agit notamment des institutions financières, des soins de santé, du gouvernement, de l’industrie du transport et des sociétés de logiciels informatiques.

5. AsyncAPI

AsyncAPI est une initiative open-source qui aide à construire et maintenir des architectures orientées événements. Ses spécifications ont de nombreux points communs avec celles d’OpenAPI. AsyncAPI est essentiellement une adaptation et une amélioration des spécifications OpenAPI, à quelques différences près.

L’architecture AsyncAPI rassemble un mélange d’API REST et d’API orientées événements. Ses schémas de traitement des demandes et des réponses sont similaires à ceux des API événementielles. AsyncAPI fournit des spécifications pour décrire et documenter les applications asynchrones dans un format lisible par machine. Elle fournit également des outils tels que des générateurs de code pour faciliter leur mise en œuvre par les utilisateurs.

Diagramme de structure de l'API asynchrone

AsyncAPI améliore l’état actuel de l’architecture pilotée par les événements (EDA). L’objectif est de faciliter le travail avec les EDA comme avec les API REST. L’initiative AsyncAPI fournit de la documentation et du code, qui prennent en charge la gestion des événements. La majorité des processus utilisés dans les API REST s’appliquent aux API événementielles/asynchrones.

L’utilisation de la spécification AsyncAPI pour documenter les systèmes pilotés par les événements est vitale. Elle régit et maintient la cohérence et l’efficacité des équipes travaillant sur des projets pilotés par les événements.

6. Appel de procédure à distance (RPC)

RPC est un protocole de communication logiciel qui permet la communication entre différents programmes sur un réseau. Par exemple, un programme peut demander des informations à un autre ordinateur sur le réseau. Il n’a pas besoin d’adhérer aux protocoles du réseau. Vous pouvez utiliser RPC pour appeler des processus sur des systèmes distants tout comme sur le système local.

RPC fonctionne sur le modèle client-serveur. Le programme client demande et le programme serveur répond avec un service. Les RPC fonctionnent en synchronisation. Lorsqu’un programme envoie une requête, il reste suspendu jusqu’à ce qu’il reçoive une réponse du serveur.

Illustration d'un diagramme RPC

Les RPC sont idéales pour les systèmes distribués. Elles sont idéales pour les systèmes basés sur des commandes et ont des charges utiles légères qui augmentent les performances.

Comment choisir la bonne architecture d’API

La bonne architecture d’API dépend de votre cas d’utilisation. L’architecture détermine la méthodologie de développement de l’API et son mode d’exécution. La conception architecturale de l’API définit ses composants et ses interactions.

Prenez des décisions architecturales avant de concevoir et de développer l’API. Déterminez les exigences techniques de l’API, le niveau, la gestion du cycle de vie et la sécurité. Les conceptions d’architecture d’API contiennent des couches structurelles. Ces couches guident le développement et garantissent que l’API créée répond à l’objectif visé.