API Gateway — un service intermédiaire entre les clients et les microservices internes. Il agrége les appels, gère le routage, l'autorisation, applique des politiques de sécurité et de limitation, et transforme et proxe les requêtes.
L'API Gateway est nécessaire pour masquer la structure interne des services du monde extérieur et unifier l'interaction. Cela aide à réduire le couplage, à accélérer le développement des frontends et à assurer un contrôle centralisé sur l'accès et la journalisation.
Exemple de configuration de nginx en tant que simple API Gateway :
server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }
Caractéristiques clés :
Un service peut-il appeler un autre sans passer par l'API Gateway ?
Les services internes peuvent utiliser des appels directs pour des scénarios privés, mais pour les clients externes, l'API Gateway est le principal moyen d'accès.
L'API Gateway est-elle un point de défaillance unique ?
Oui, si la mise en cluster et l'équilibrage ne sont pas configurés. Il est important de lancer plusieurs instances et d'utiliser un répartiteur de charge.
L'API Gateway peut-elle mettre en cache les réponses ?
Oui, les passerelles avancées peuvent mettre en cache les requêtes GET, ce qui réduit la charge sur les services et accélère la restitution des données. Exemple de configuration du cache dans Kong :
plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300