Soluciones de gestión de API [cerrado]


9

Actualmente estoy creando una API y estoy buscando una herramienta que me permita monitorear (en una GUI) y el uso de límite de velocidad. He encontrado algunas soluciones empresariales que incluyen:

El plan empresarial Apigee es exactamente lo que estoy buscando, pero los planes comienzan en $ 3000 / mes, lo que está fuera de mi rango de precios. Las otras soluciones son demasiado caras o no proporcionan la solución que estoy buscando.

Esto me llevó a mirar algunas opciones de código abierto que incluyen:

El barniz parece una solución bastante completa; sin embargo, necesitaría construir una GUI para visualizar los datos.

Mi última opción sería construir una solución desde cero usando EventMachine y Ruby.

¿Algún consejo?


1
Miguel. Soy el desarrollador de Api Axle. No hay visualización de estadísticas, pero Axle viene con una API que debería facilitar la creación de una. Hazme ping si crees que puedo ser de ayuda.
Phil Jackson

2
No lo he probado, pero ¿qué hay de usar nginx con redis e implementar este tipo de algoritmo? Chris6f.com/rate-limiting-with-redis
hellvinz

Respuestas:


3

Creo que sobreestimas lo difícil que es esto.

En su código, solo tenga un contador con redis / memcached / mongodb (contador de 1/24 horas o contador por hora / diario según sus necesidades) y devuelva el error apropiado cuando se haya alcanzado el límite. Puede incrementar los recuentos allí mismo o hacer eso de forma asíncrona al procesar sus registros.

Para mostrar los datos, simplemente haga una página web simple que resuma los recuentos según sea necesario.

Para nuestro uso, no necesitamos limitar las cosas exactamente, por lo que generalmente solo iniciamos sesión en nuestra infraestructura de registros y uno de los procesadores de registros (en tiempo real a través de escribano) resumirá este tipo de cosas. El resultado es una página HTML simple con las direcciones IP / clientes ocupados, alguna página que Nagios puede monitorear y algunas URL de las que Munin extrae datos para hacer gráficos.


1

Puedes usar naxsi con nginx. simplemente anule su ubicación / requestDenied con las reglas de límite que necesita:

mapear los parámetros de redireccionamiento de naxsi al límite correspondiente:

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

límites de uso en la ubicación:

 location /RequestDenied {
     proxy_pass http://127.0.0.1:4242;
     limit_req $limit_uri;
   }
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.