Como proveedor de API (ingrediente farmacéutico activo), garantizar la estabilidad y la seguridad de nuestros servicios API es de suma importancia. Un aspecto crucial para mantener un entorno API confiable es implementar la limitación de la tasa de API. En esta publicación de blog, compartiré algunas ideas sobre cómo implementar efectivamente la limitación de la tasa de API en función de nuestras experiencias en la industria de suministro de API.
Comprender la necesidad de limitar la velocidad de la API
Antes de profundizar en los detalles de implementación, es esencial comprender por qué es necesaria la limitación de la tasa de API. En el negocio de suministros de API, tratamos con varios clientes que acceden a nuestras API para diferentes fines. El acceso sin restricciones a nuestras API puede conducir a varios problemas, como el agotamiento de los recursos, las vulnerabilidades de seguridad y el uso injusto.
Por ejemplo, si un solo cliente realiza un número excesivo de solicitudes en un período corto, puede consumir una cantidad significativa de los recursos de nuestro servidor, afectando el rendimiento de otros clientes. Además, los actores maliciosos podrían usar técnicas Brute, forzar a sobrecargar nuestras API, lo que lleva a las interrupciones del servicio. La limitación de tarifas nos ayuda a administrar estos riesgos controlando el número de solicitudes que un cliente puede hacer dentro de un marco de tiempo específico.
Tipos de limitación de tasa de API
Existen varios tipos de limitación de tasa de API que podemos implementar, cada uno con sus propias ventajas y casos de uso.


Limitación de la tasa basada en el tiempo
Este es el tipo más común de limitación de tarifas, donde establecemos un límite en la cantidad de solicitudes que un cliente puede hacer dentro de un período de tiempo determinado, como por segundo, por minuto, por hora o por día. Por ejemplo, podríamos permitir que un cliente realice un máximo de 100 solicitudes por minuto. Si un cliente excede este límite, las solicitudes posteriores serán bloqueadas o estreladas.
Token - Algoritmo de cubo
El algoritmo de bucket token es un enfoque más sofisticado para la limitación de la tasa. Imagine un cubo que puede contener un cierto número de tokens. Cada vez que un cliente realiza una solicitud, se elimina un token del cubo. Los tokens se reponen a una velocidad fija. Si el cubo está vacío, el cliente no puede hacer más solicitudes hasta que se agregan nuevos tokens. Este algoritmo permite explosiones de solicitudes a corto plazo siempre que la tasa general de solicitudes permanezca dentro del límite.
Algoritmo de cubo
Similar al algoritmo de token -bucket, el algoritmo de cubo con fugas también controla la tasa de solicitudes. En este caso, las solicitudes son como el agua que fluye en un cubo, y el cubo tiene un pequeño orificio en la parte inferior a través del cual el agua (solicitudes) se filtra a una velocidad constante. Si la tasa de solicitudes entrantes excede la tasa a la que se pueden procesar las solicitudes (la tasa de fuga), las solicitudes de exceso se ponen en cola o se eliminan.
Implementación de la limitación de la tasa de API
Ahora, discutamos cómo podemos implementar la limitación de la tasa de API en la práctica.
Implementación del lado del servidor
La mayor parte de la limitación de la tasa de API se realiza en el lado del servidor. Podemos usar el middleware en nuestros servidores API para hacer cumplir los límites de velocidad. Por ejemplo, en una aplicación node.js usando express.js, podemos usar elExpress - tasa - límitemiddleware.
const ratelimit = require ('expreso - tasa - límite'); const apilimiter = ratElimit ({Windowms: 60 * 1000, // 1 minuto máx: 100, // limita cada IP a 100 solicitudes por mensaje de ventana: 'Demasiadas solicitudes, intente nuevamente más tarde.'}); app.use ('/api', apilimiter);
En una aplicación de Python con frasco, podemos implementar la limitación de la velocidad utilizando elFrasco - Limitadorextensión.
Desde frasco importar frasco de frask_limiter importador de importador de frask_limiter.util import get_remote_address app = frask (__ name__) limiter = limiter (app, key_func = get_remote_address, default_limits = ["100 perpero"] @app.route ("/api") @limiter.limit ("" 100 100 "Este es un punto final API".
Cliente - Consideraciones secundarias
Aunque la mayor parte de la limitación de la tasa es el lado del servidor, los clientes también pueden desempeñar un papel en el respeto de los límites de tarifa. Los clientes pueden implementar mecanismos de almacenamiento en caché para reducir el número de solicitudes innecesarias. Por ejemplo, si un cliente solicita una lista de API y la lista no cambia con frecuencia, el cliente puede almacenar en caché la respuesta y reutilizarla en lugar de hacer una nueva solicitud cada vez.
Límites de velocidad de monitoreo y ajuste
La implementación de límites de tasa no es una tarea de tiempo. Necesitamos monitorear continuamente el uso de nuestras API y ajustar los límites de velocidad según sea necesario. Podemos usar herramientas de monitoreo para rastrear el número de solicitudes realizadas por cada cliente, las tasas de éxito y fracaso de las solicitudes y la utilización general de los recursos de nuestros servidores.
Si notamos que un cliente en particular está alcanzando constantemente el límite de tarifa y está afectando su uso legítimo de nuestras API, podríamos considerar aumentar su límite de tarifa. Por otro lado, si descubrimos que algunos clientes están haciendo solicitudes excesivas sin una razón válida, podemos reducir sus límites de tarifa o tomar medidas adicionales, como bloquear su acceso.
Casos de uso en la oferta de API
En el negocio de suministro de API, la limitación de tarifas se puede aplicar en diferentes escenarios. Por ejemplo, cuando los clientes acceden a información sobre nuestroGrado superior L - Ornitina 2 - Oxoglutarato, 5144 - 42 - 3, C10H18N2O7,Albendazole de buena calidad, CAS: 54965 - 21 - 8, C12H15N3O2S, oRifamicina de grado superior Sodio, CAS: 14897 - 39 - 3, estándar de GMP, la limitación de tarifas asegura que todos los clientes tengan acceso justo a la información.
Algunos clientes podrían estar utilizando nuestras API para verificaciones de inventario de tiempo reales, mientras que otros podrían estar recuperando datos históricos. Al implementar los límites de tarifa apropiados, podemos asegurar que el rendimiento de la API se mantenga estable para todo tipo de clientes.
Conclusión
La implementación de la limitación de la tasa de API es un paso crucial para mantener un entorno API estable y seguro para nuestro negocio de suministros de API. Al comprender los diferentes tipos de limitación de tarifas, implementarlos de manera efectiva en el lado del servidor, considerando las optimizaciones laterales del cliente y monitorear y ajustar continuamente los límites, podemos asegurarnos de que nuestras API se usen de manera justa y eficiente.
Si está interesado en comprar nuestras API o tener alguna pregunta sobre nuestros servicios de API, no dude en contactarnos para una discusión adicional. Estamos comprometidos a proporcionar API de alta calidad y un excelente servicio al cliente.
Referencias
- "Construyendo API seguras y confiables". O'Reilly Media.
- "Documentación express.js". Sitio web oficial de Express.JS.
- "Documentación del frasco". Sitio web oficial de Flask.
