Utilisez cette passerelle API open source pour faire évoluer votre API


  • Français


  • Une passerelle API est un point d’entrée unique pour les appels entrants vers un interface de programmation d’applications (API). La passerelle agrège les services demandés, puis renvoie la réponse appropriée. Pour rendre votre passerelle API efficace, il est essentiel pour vous de concevoir une API fiable, efficace et simple. Il s’agit d’un casse-tête architectural, mais vous pouvez le résoudre tant que vous comprenez les composants les plus importants.

    Approche basée sur l’API

    Une approche basée sur les API place une API au cœur de la communication entre les applications et les fonctionnalités métier auxquelles elles doivent accéder afin de fournir de manière cohérente des fonctionnalités transparentes sur tous les canaux numériques. Connectivité pilotée par API fait référence à la technique consistant à utiliser une API réutilisable et bien conçue pour lier les données et les applications.

    Architecture pilotée par API

    L’architecture API-Led est une approche architecturale qui examine les meilleures façons de réutiliser une API. L’architecture basée sur l’API traite des éléments tels que :

    • Protéger une API contre les accès non autorisés.
    • Veiller à ce que les applications consommatrices puissent toujours trouver le bon point de terminaison d’API.
    • Limiter ou limiter le nombre d’appels effectués à une API pour garantir une disponibilité continue.
    • Prise en charge de l’intégration continue, des tests, de la gestion du cycle de vie, de la surveillance, des opérations, etc.
    • Empêcher la propagation des erreurs dans la pile.
    • Surveillance en temps réel d’une API avec des analyses et des informations riches.
    • Mettre en œuvre des capacités commerciales évolutives et flexibles (par exemple, prendre en charge un microservice architecture.)

    Routage des ressources API

    La mise en œuvre d’une passerelle API comme point d’entrée unique pour tous les services signifie que les consommateurs d’API n’ont besoin de connaître qu’une seule URL. Il incombe à la passerelle API d’acheminer le trafic vers les points de terminaison de service correspondants et d’appliquer les politiques.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Cela réduit la complexité du côté consommateur d’API, car les applications clientes n’ont pas besoin de consommer les fonctionnalités de plusieurs points de terminaison HTTP. Il y a aussi pas besoin d’implémenter une couche distincte pour l’authentification, l’autorisation, la limitation et la limitation du débit pour chaque service. La plupart des passerelles API, comme l’open source Apache APISIX projet, ont déjà ces fonctionnalités de base intégrées.

    Routage basé sur le contenu de l’API

    Un mécanisme de routage basé sur le contenu utilise également une passerelle API pour acheminer les appels en fonction du contenu d’une requête. Par exemple, une demande peut être acheminée en fonction de l’en-tête HTTP ou du corps du message au lieu de simplement son URI cible.

    Considérez un scénario où le partitionnement de base de données est appliqué afin de répartir la charge sur plusieurs instances de base de données. Cette technique est généralement appliquée lorsque le nombre total d’enregistrements stockés est énorme et qu’une seule instance a du mal à gérer la charge.

    Une meilleure solution consiste à répartir les enregistrements sur plusieurs instances de base de données. Ensuite, vous implémentez plusieurs services, un pour chaque magasin de données unique, et adoptez une passerelle API comme seul point d’entrée à tous les services. Vous pouvez ensuite configurer votre passerelle API pour acheminer les appels vers le service correspondant en fonction d’une clé obtenue à partir de l’en-tête HTTP ou de la charge utile.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Dans le schéma ci-dessus, une passerelle API expose un seul /customers ressource pour plusieurs services client, chacun avec un magasin de données différent.

    Géo-routage API

    Une solution de géo-routage d’API achemine un appel d’API vers la passerelle d’API la plus proche en fonction de son origine. Afin d’éviter les problèmes de latence dus à la distance (par exemple, une application consommatrice d’Asie appelant une API située en Amérique du Nord), vous pouvez déployer une passerelle API dans plusieurs régions du monde. Vous pouvez utiliser un sous-domaine différent pour chaque passerelle API dans chaque région, laissant l’application consommatrice déterminer la passerelle la plus proche en fonction de la logique de l’application. Ensuite, une passerelle API fournit un équilibrage de charge interne pour s’assurer que les demandes entrantes sont réparties sur les instances disponibles.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Il est courant d’utiliser un service de gestion du trafic DNS et une passerelle API pour résoudre chaque sous-domaine par rapport à l’équilibreur de charge de la région afin de cibler la passerelle la plus proche.

    Agrégateur d’API

    Cette technique effectue des opérations (par exemple, des requêtes) sur plusieurs services et renvoie le résultat au service client avec une seule réponse HTTP. Au lieu de demander à une application cliente d’effectuer plusieurs appels vers plusieurs API, un agrégateur d’API utilise une passerelle API pour le faire au nom du consommateur côté serveur.

    Supposons que vous disposiez d’une application mobile qui effectue plusieurs appels vers différentes API. Cela augmente la complexité du code côté client, entraîne une surutilisation des ressources réseau et produit une mauvaise expérience utilisateur en raison d’une latence accrue. Une passerelle API peut accepter toutes les informations requises en entrée, et peut demander une authentification et une validation, et comprendre les structures de données de chaque API avec laquelle elle interagit. Il est également capable de transformer les charges utiles de réponse afin qu’elles puissent être renvoyées à l’application mobile en tant que charge utile uniforme nécessaire au consommateur.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Authentification centralisée par API

    Dans cette conception, une passerelle API agit comme une passerelle d’authentification centralisée. En tant qu’authentificateur, une passerelle API recherche les informations d’identification d’accès dans l’en-tête HTTP (comme un jeton de support). Elle implémente ensuite une logique métier qui valide ces informations d’identification avec un fournisseur d’identité.

    (Bobur Umurzokov, CC BY-SA 4.0)

    L’authentification centralisée avec une passerelle API peut résoudre de nombreux problèmes. Il décharge complètement la gestion des utilisateurs d’une application, améliorant les performances en répondant rapidement aux demandes d’authentification reçues des applications clientes. Apache APISIX propose une variété de plugins pour activer différentes méthodes d’authentification de la passerelle API.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Conversion de formats d’API

    La conversion de format d’API est la capacité de convertir des charges utiles d’un format à un autre sur le même transport. Par exemple, vous pouvez transférer de XML/SOAP sur HTTPS vers JSON sur HTTPS, et inversement. Une passerelle API offre des capacités à l’appui d’un API REST et peut effectuer des conversions de charge utile et des conversions de transport. Par exemple, une passerelle peut convertir un transport de télémétrie de file d’attente de messages (MQTT) sur TCP (un transport très populaire dans l’IoT) en JSON sur HTTPS.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Apache APISIX est capable de recevoir une requête HTTP, de la transcoder, puis de la transmettre à un service gRPC. Il obtient la réponse et la renvoie au client au format HTTP au moyen de son Transcodage gRPC brancher.

    Observabilité de l’API

    À présent, vous savez qu’une passerelle API offre un point de contrôle central pour le trafic entrant vers diverses destinations. Mais il peut également être un point central d’observation, car il est particulièrement qualifié pour surveiller tout le trafic circulant entre les réseaux du client et du service. Vous pouvez ajuster une passerelle API afin que les données (journaux structurés, métriques et traces) puissent être collectées pour être utilisées avec des outils de surveillance spécialisés.

    Apache APISIX fournit connecteurs préfabriqués afin que vous puissiez intégrer des outils de surveillance externes. Vous pouvez tirer parti de ces connecteurs pour collecter des données de journal à partir de votre passerelle API afin de dériver davantage de métriques utiles et d’obtenir une visibilité complète sur la façon dont vos services sont utilisés. Vous pouvez également gérer les performances et la sécurité de votre API dans votre environnement.

    Mise en cache des API

    La mise en cache de l’API est généralement implémentée à l’intérieur de la passerelle API. Cela peut réduire le nombre d’appels effectués vers votre point de terminaison et également améliorer la latence des demandes adressées à votre API en mettant en cache une réponse en amont. Si le cache de la passerelle API dispose d’une nouvelle copie de la ressource demandée, il utilise cette copie pour répondre directement à la demande au lieu d’adresser une demande au point de terminaison. Si les données mises en cache sont introuvables, la demande est acheminée vers les services en amont prévus.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Gestion des erreurs d’API

    Les services API peuvent échouer pour un certain nombre de raisons. Dans de tels scénarios, votre service d’API doit être suffisamment résilient pour faire face aux pannes prévisibles. Vous voulez également vous assurer que tous les mécanismes de résilience que vous avez mis en place fonctionnent correctement. Cela inclut le code de gestion des erreurs, les disjoncteurs, les vérifications de l’état, les secours, la redondance, etc. Les passerelles API modernes prennent en charge toutes les fonctionnalités de gestion des erreurs les plus courantes, y compris les tentatives automatiques et les délais d’expiration.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Une passerelle API agit comme un orchestrateur qui peut utiliser un rapport d’état pour décider comment gérer le trafic, envoyer des équilibres de charge à un nœud sain et peut échouer rapidement. Il peut également vous alerter en cas de problème. Une passerelle API garantit également que le routage et d’autres composants au niveau du réseau fonctionnent ensemble avec succès pour envoyer une demande au processus API. Il vous aide à détecter un problème à un stade précoce et à résoudre les problèmes. Un mécanisme d’injection de fautes (comme celui utilisé par Apache APISIX) au niveau de la passerelle API peut être utilisé pour tester la résilience d’une application ou d’une API de microservices contre diverses formes de défaillances.

    Gestion des versions d’API

    Cela fait référence à la possibilité de définir et d’exécuter plusieurs versions simultanées d’une API. Ceci est particulièrement important, car une API évolue dans le temps. La possibilité de gérer des versions simultanées d’une API permet aux consommateurs d’API de passer progressivement à des versions plus récentes d’une API. Cela signifie que les anciennes versions peuvent être obsolètes et finalement retirées. Ceci est important car une API, comme toute autre application logicielle, doit pouvoir évoluer soit pour prendre en charge de nouvelles fonctionnalités, soit en réponse à des corrections de bogues.

    (Bobur Umurzokov, CC BY-SA 4.0)

    Vous pouvez utiliser une passerelle API pour implémenter la gestion des versions d’API. La gestion des versions peut être un en-tête, un paramètre de requête ou un chemin.

    Passerelle vers APISIX

    Si vous souhaitez faire évoluer vos services API, vous avez besoin d’une passerelle API. Le projet Apache APISIX fournit des fonctionnalités essentielles pour un point d’entrée robuste, et ses avantages sont clairs. Il s’aligne sur une architecture pilotée par API et est susceptible de transformer la façon dont vos clients interagissent avec vos services hébergés.


    Cet article a été adapté et republié à partir du Blog Apache APISIX avec l’autorisation de l’auteur.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code