web-dev-qa-db-fra.com

Quelle passerelle API est prête pour la production et offre de bonnes performances et fonctionnalités?

Nous avons de nombreux REST services au sein de notre infrastructure. Ceux-ci sont construits à l'aide de technologies différentes (Java, Go, Ruby, NodeJS), mais ils ont tous des exigences communes telles que l'authentification, l'autorisation, la limitation de débit, l'analyse, etc. envisagent de disposer d'une passerelle API en face de ces API afin que toutes les communications se passent par elle uniquement. J'ai découvert des produits open source sur le marché tels que Strongloop/Loopback , WSO2 , TYK , APIAXLE & 3scale mais la plupart des produits ceux-ci ne semblent pas être testés dans le temps et prêts à être utilisés en production. Peu de choses qui me viennent à l'esprit maintenant:

  1. Comment sont les commentaires des utilisateurs après avoir utilisé l'une de ces solutions?
  2. Beaucoup de gens auraient besoin de ce genre de fonctionnalité alors comment font-ils? Est-ce que je regarde dans la bonne direction?
  3. Existe-t-il un meilleur moyen de résoudre mon problème sans utiliser API Gateway?
17
ThinkFloyd

Je peux répondre à 3 échelle puisque je travaille là-bas.

3scale est une plate-forme de gestion d'API complète qui implémente l'autorisation, la limitation de débit et les analyses pour votre API. Nous proposons différentes options d'intégration, dont la plus populaire est notre passerelle API, qui peut être hébergée par nous ou déployée sur site.

Il s’agit d’une passerelle Nginx déployée devant vos serveurs d’API et autorisant les appels entrants en atteignant l’API 3scale. La passerelle extrait la clé API de l'appel entrant et du noeud final appelé et vérifie si cette demande particulière doit être autorisée (c'est-à-dire clé valide, utilisation dans les limites, noeud final valide, etc.).

L'un des éléments clés de notre passerelle API est que l'autorisation est effectuée de manière asynchrone, de sorte qu'elle n'a aucun impact sur la latence perçue par l'utilisateur de l'API.

Concernant vos questions particulières:

  1. Nous avons 600 clients utilisant 3scale en production. Ceci inclut les API avec des volumes de trafic très importants, dont certaines peuvent être vues et lues à propos de ici .

  2. Je dirais que le choix principal consiste à utiliser une plate-forme de gestion d'API ou à implémenter ces fonctionnalités vous-même. L'avantage d'utiliser quelque chose comme 3scale est que nous nous spécialisons exactement dans ce problème et que nous fournissons d'autres fonctionnalités très utiles en plus de l'autorisation de base et de la limitation de débit: un portail de développeur hébergé par nous où vos utilisateurs d'API peuvent enregistrer et gérer leurs clés, un système de facturation que vous pouvez utiliser pour proposer des forfaits payants pour votre API, une prise en charge de modèles d’authentification avancés tels que OAuth2 et d’autres que vous pouvez consulter sur notre site Web.

  3. Vous pouvez également intégrer 3scale dans votre API à l’une de nos bibliothèques de logiciels. Cependant, étant donné que vous avez plusieurs API écrites dans différentes langues, je recommanderais la passerelle API, car vous ne disposerez que d'un seul point d'intégration (donc plus facile à gérer).

Comme toujours, le meilleur est si vous le testez vous-même. Nous avons un plan gratuit sans limite de temps, vous pouvez donc commencer par là.

1
vdg

Si je parle de WSO2 API Manager,

  1. Comme je connais beaucoup de gens qui l'utilisent en production et donnent de bons retours à ce sujet.

  2. Oui. vous pouvez utiliser API Manager pour limiter le débit. API Manager possède une fonctionnalité appelée niveaux de régulation. vous pouvez utiliser cette fonctionnalité pour limiter le débit. Pour d'autres fonctionnalités telles que l'authentification et l'autorisation, vous devez utiliser API Manager avec Serveur d'identité WSO2 . Pour la fonctionnalité d'analyse, vous devez utiliser API Manager WSO2 Business Activity Monitor . En intégrant tous ces produits, vous pouvez obtenir les fonctionnalités que vous avez mentionnées.

1
lakshman