API Management Solutions [fermé]

9

Je suis en train de créer une API et je recherche un outil pour me permettre de surveiller (dans une interface graphique) et de limiter les taux d'utilisation. J'ai rencontré quelques solutions d'entreprise, notamment:

Le plan d'entreprise Apigee est exactement ce que je recherche, mais les plans commencent à 3000 $ / mois, ce qui est hors de ma fourchette de prix. Les autres solutions sont toutes trop chères ou ne fournissent pas la solution que je recherche.

Cela m'a amené à examiner certaines options open source, notamment:

Le vernis semble être une solution assez complète; cependant, je devrais créer une interface graphique pour visualiser les données.

Ma dernière option serait de créer une solution à partir de zéro en utilisant EventMachine et ruby.

Aucun conseil?

Mike
la source
1
Mike. Je suis le développeur d'Api Axle. Il n'y a pas de visualisation des statistiques, mais Axle est livré avec une API qui devrait faciliter la création d'une. Faites-moi un ping si vous pensez que je peux vous aider.
Phil Jackson
2
Je ne l'ai pas testé mais qu'en est-il de l'utilisation de nginx avec redis et de l'implémentation de ce type d'algorithme chris6f.com/rate-limiting-with-redis
hellvinz

Réponses:

3

Je pense que vous surestimez à quel point c'est difficile.

Dans votre code, il vous suffit d'avoir un compteur avec redis / memcached / mongodb (compteur 1/24 heures ou compteur horaire / quotidien selon vos besoins) et renvoyer l'erreur appropriée lorsque la limite a été atteinte. Vous pouvez soit incrémenter le nombre directement, soit le faire de manière asynchrone lors du traitement de vos journaux.

Pour afficher les données, créez simplement une page Web résumant les chiffres selon vos besoins.

Pour notre utilisation, nous n'avons pas besoin de limiter les choses exactement, donc nous nous connectons généralement à travers notre infrastructure de journaux et l'un des processeurs de journaux (en temps réel via scribe) résumera ce genre de chose. Le résultat est une simple page HTML avec les adresses IP / clients occupés, une page que les nagios peuvent surveiller et quelques URL dont munin extrait les données pour créer des graphiques.

Poser une question à Bjørn Hansen
la source
1

Vous pouvez utiliser naxsi avec nginx. remplacez simplement votre emplacement / requestDenied avec les règles de limite dont vous avez besoin:

mappez les paramètres de redirection naxsi à la limite correspondante:

map $arg_uri $limit_uri {
  123.php   limit_zone1;
  234.php   limit_zone2;
default limit_default;
}

utiliser des limites dans l'emplacement:

 location /RequestDenied {
     proxy_pass http://127.0.0.1:4242;
     limit_req $limit_uri;
   }
DukeLion
la source