Guía de cuotas y límites de velocidad
FedEx recibe miles de solicitudes de API cada día. Utilizamos tres mecanismos que limitan el acceso para manejar ese gran volumen. Se establecen cuotas, límites de velocidad y otros límites de acceso para asignar los recursos de FedEx de manera efectiva y eficiente.
Las cuotas se definen por organización y por proyecto de API.
Cuotas por organización
La cuota de la transacción es el número máximo de solicitudes de API que puede presentar una organización en un día. Esto significa que los consumidores de la API deben considerar el número total de solicitudes de API iniciadas por todos los proyectos dentro de su organización. Cada solicitud cuenta por igual, independientemente del volumen de datos que se arrojen en la respuesta de la API de FedEx.
Ejemplo: una organización tiene una cuota de 500 000 solicitudes de API por día. Si una organización presenta 500 000 solicitudes dentro de las primeras horas del día, alcanza su cuota diaria. Durante el resto del día, se arrojará un código de error de «429 – Demasiadas solicitudes – Se excedió la cuota diaria de transacciones. Vuelve a intentarlo después de las 24:00 horas GMT», en cada una de las solicitudes hasta el día siguiente.
Cuotas por proyecto de API
La cuota se aplica a dos niveles diferentes: de proyecto y de capacidad.
¿Qué entendemos por capacidades?
Cada API se agrupa por las capacidades que proporciona. Cada grupo de capacidades es un conjunto de uno o más puntos finales. Por ejemplo, la API de rastreo tiene una capacidad de 6 puntos finales de API, mientras que la validación de direcciones tiene una capacidad de solo 1 punto final de API.
El límite de cuota predeterminado por capacidad por proyecto (PCPP) para la capacidad de rastreo es de 100 000 solicitudes por día. Eso significa que cuando el tráfico que proviene de proyectos al interior de una organización para cualquiera de los 6 puntos finales que se encuentran en la capacidad de rastreo exceda este límite, entonces, te enviaremos el código de error de «429 – Demasiadas solicitudes» hasta el final del día. Esto se aplica para todas las solicitudes subsecuentes de rastreo para cualquiera de los 6 puntos finales.
Ejemplo: si un proyecto tiene un límite de 100 000 de capacidad de rastreo (con 6 puntos finales), el número total de transacciones para todos los 6 puntos finales se contará hasta el límite de 100 000. Si un proyecto excede ese límite, entonces, para las transacciones de rastreo subsecuentes recibirás el código de error de «429 – Demasiadas solicitudes – Se excedió la cuota diaria de transacciones» para el resto del día, 24 horas GMT.
Límites de velocidad
Cada proyecto tiene un límite de velocidad de transacciones de 1 400 transacciones en un periodo de 10 segundos. Se aplican restricciones de límite de acceso si las transacciones exceden este límite durante un periodo de 10 segundos.
Si se alcanza este límite en los primeros segundos, entonces se limitará el acceso a cualquier transacción que se envíe en los segundos restantes de esa ventana de 10 segundos. Durante este período de límite de acceso, se arrojará un código de error que dirá: «429 – Demasiadas solicitudes».
Si FedEx recibe 1 400 solicitudes en los primeros 2 segundos, entonces, se limitará el acceso a cualquier transacción subsecuente durante los siguientes 8 segundos y se arrojará un mensaje de error que dice: «429 – Demasiadas solicitudes – Recibimos demasiadas solicitudes en poco tiempo. Espera un momento e inténtalo nuevamente».
Después de que transcurran 10 segundos, las restricciones de límite de acceso se levantarán y otro contador comenzará a rastrear el número de solicitudes durante los siguientes 10 segundos.
Límites
Se aplican límites a nivel de dirección IP para hacer resistente el proceso de autorización de la API de FedEx. Este mecanismo solo se aplica en el servicio de generación del token Auth. Hay dos tipos de límites:
- Límite de ráfaga: 3 hits por segundo, continuamente, durante un periodo de 5 segundos
- Límite promedio: 1 hit por segundo, continuamente, durante un periodo de 2 minutos
- Una vez que una dirección IP viola uno de estos límites, será penalizada por 10 minutos y todas las solicitudes posteriores durante ese periodo de tiempo de 10 minutos recibirán un código de estado «403 Prohibido».
- Si los consumidores de la API continúan violando cualquier límite durante este tiempo de sanción, se extenderá el tiempo de sanción. Los usuarios de la API pueden finalizar su tiempo de sanción si no violan el límite por los siguientes 10 minutos.
- Los mecanismos de los límites se basan en la dirección IP pública del usuario. Si un usuario configura 10 máquinas virtuales con una IP pública, entonces, todas las solicitudes provenientes de esa dirección IP contarán para el límite.
Gestión de tráfico
Cada uno de estos tres mecanismos aborda un aspecto distinto de la gestión de tráfico:
Las cuotas se aplican a nivel de la organización: el tráfico combinado generado por todas las API en una organización estará sujeto a esta cuota.
Las cuotas aplicadas al nivel de proyecto: el tráfico combinado generado para la capacidad de la API de un proyecto estará sujeto a esta cuota de transacciones.
Los límites de tarifa se aplican a nivel de proyecto, es decir, el tráfico combinado generado por todas las API de un proyecto estará sujeto al límite de tarifa.
Los límites se aplican a nivel de la dirección IP.
Nota: FedEx puede reducir los límites de cualquiera de los mecanismos de límite de acceso mencionados, para impedir el mal uso, el uso excesivo o el abuso. FedEx se reserva el derecho de cambiar las asignaciones sin dar previo aviso para mantener el acceso equitativo entre los consumidores de API y para asignar los recursos de FedEx de forma efectiva y eficiente.
Preguntas frecuentes
¿Se cuentan para la cuota todas las transacciones de la API de una organización provenientes de distintos proyectos?
La cuota se aplica a nivel de la organización. Una organización puede tener uno o más proyectos y cada proyecto puede tener una o más API. En consecuencia, el tráfico combinado generado por todas las API provenientes de los diferentes proyectos, todos pertenecientes a la misma organización, se cuenta para la cuota diaria.
Si se arroja el mismo error 429 tanto para una violación de la cuota como para una violación del límite de velocidad, ¿cómo puedo identificar en qué clase de violación incurrí? Puedes identificar la violación al leer el mensaje de error.
VIOLACIÓN | MENSAJE DE ERROR |
---|---|
Cuotas por organización | Demasiadas solicitudes: se excedió la cuota diaria de transacciones. Intenta nuevamente después de las 24:00 horas GMT. |
Cuotas por proyecto de API | Demasiadas solicitudes: se excedió la cuota diaria por proyecto. Intenta nuevamente después de las 24:00 horas GMT. |
Límite de velocidad | Demasiadas solicitudes: se excedió el límite de velocidad. Intenta nuevamente después de 10 segundos. |
¿Cuál es la solución para una violación del límite?
Un token OAuth tiene validez por una hora. Nosotros sugerimos que los consumidores API usen este token por la hora completa y luego soliciten un nuevo token, solo cuando el anterior se venza.
¿Cuál es un ejemplo de cuándo se cruza un límite?
Los 5 segundos y los 2 minutos son ventanas de observación, para el límite de ráfaga y para el límite promedio, respectivamente. Durante el tiempo que dura cualquiera de estas ventanas, si se violan los límites desde una dirección IP, entonces se impone la sanción del límite.
Ejemplo: si una dirección IP tiene 3 hits por segundo durante 2 segundos, seguidos de una tasa de hits inferior a 3 hits por segundo, entonces, no se ha violado el límite de ráfaga. Sin embargo, si una dirección IP tiene 3 hits por segundo de forma continua durante 5 segundos, seguidos de 15 hits en 5 segundos, entonces, se ha violado el límite de ráfaga de 14 hits en 5 segundos.