gateway
An API Gateway acts as a single entry point for clients accessing multiple backend microservices, handling requests, routing them to appropriate services, and a...
Une passerelle API est un serveur qui sert de point d'entrée pour toutes les requêtes des clients vers les services backend. Elle se situe entre les applications clientes et les microservices ou le backend monolithique, en abstraayant l'architecture sous-jacente et en simplifiant les interactions client. Les fonctions principales d'une passerelle API comprennent le routage des requêtes, la transformation des requêtes/réponses, l'authentification et l'autorisation, la limitation du débit, la mise en cache, la journalisation et la surveillance. En centralisant ces préoccupations transversales, la passerelle évite qu'elles ne soient dupliquées sur plusieurs services backend, ce qui conduit à un code plus propre et plus maintenable. Le routage des requêtes dirige les appels API entrants vers le service backend approprié en fonction du chemin de la requête, des en-têtes ou d'autres critères. La transformation permet à la passerelle de modifier les requêtes ou les réponses, par exemple, en changeant les formats de données (par exemple, XML vers JSON) ou en agrégeant des données de plusieurs services. La sécurité est un aspect critique ; la passerelle peut gérer l'authentification (vérification de l'identité du client) et l'autorisation (détermination si le client a la permission d'accéder à la ressource demandée), souvent en s'intégrant avec des fournisseurs d'identité ou des services de validation de jetons. La limitation du débit protège les services backend contre la surcharge due à un trop grand nombre de requêtes, tandis que la mise en cache peut améliorer les performances en servant les données fréquemment demandées directement depuis la passerelle. Ce modèle architectural est particulièrement répandu dans les architectures de microservices, où il aide à gérer la complexité de nombreux services distribués.
graph LR
Center["gateway"]:::main
Rel_load_balancer["load-balancer"]:::related -.-> Center
click Rel_load_balancer "/terms/load-balancer"
Rel_internet_of_things_iot["internet-of-things-iot"]:::related -.-> Center
click Rel_internet_of_things_iot "/terms/internet-of-things-iot"
Rel_grid_computing["grid-computing"]:::related -.-> Center
click Rel_grid_computing "/terms/grid-computing"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Test de connaissances
🧒 Explique-moi comme si j'avais 5 ans
Une passerelle [API](/fr/terms/api) est comme une réceptionniste serviable pour un grand immeuble de bureaux ; elle dirige les visiteurs (les requêtes de votre application) vers le bon service (service backend) et s'assure que seules les personnes autorisées entrent, sans que le visiteur ait besoin de connaître l'agencement interne.
🤓 Expert Deep Dive
Le modèle de passerelle API répond aux défis de la gestion des systèmes distribués, en particulier des microservices, en fournissant une interface unique et unifiée pour les clients. Les considérations architecturales clés incluent le choix entre une passerelle centralisée (point d'entrée unique) et des passerelles décentralisées (par service ou par domaine). Les passerelles centralisées simplifient les interactions client et appliquent des politiques cohérentes, mais peuvent devenir un goulot d'étranglement et un point de défaillance unique. Les passerelles décentralisées offrent une meilleure évolutivité et une meilleure isolation des pannes, mais peuvent entraîner une duplication des politiques. Les modèles d'implémentation courants incluent le modèle Backend For Frontend (BFF), où des passerelles spécialisées répondent aux besoins spécifiques des différents types de clients (par exemple, mobile, web). Le rôle de la passerelle dans la traduction de protocoles (par exemple, REST vers gRPC) et l'agrégation de requêtes est crucial pour découpler les clients de l'évolution des services backend. Les implications en matière de performances découlent du saut réseau supplémentaire et de la surcharge de traitement, nécessitant un routage, une mise en cache et potentiellement un traitement asynchrone efficaces. L'application de la sécurité au niveau de la passerelle, telle que la validation JWT ou l'introspection de jeton OAuth 2.0, est une meilleure pratique de sécurité essentielle.