Guía de cuotas y límites de velocidad
Las API de FedEx están sujetas a tres mecanismos de límite de acceso: cuotas, límites de velocidad y límites.
Cuotas
La cuota de la transacción es el número máximo de solicitudes API que pueden ser presentadas por una organización en un día. Esto significa que los consumidores de API deben considerar el número total de solicitudes 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 API por día. En las primeras horas del día, esta organización ha presentado 500 000 solicitudes, por lo tanto se alcanzó 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 12:00 a. m. GMT», en cada una de las solicitudes hasta el día siguiente.
Límites de velocidad
Cada proyecto tiene un límite de velocidad de transacciones de 1400 transacciones en un período de 10 segundos. Se aplican restricciones de límite de acceso si las transacciones exceden este límite durante un período 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 1400 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éntelo 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 OAuth. 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 período 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 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, es decir, el tráfico combinado generado por todas las API en una organización estará sujeto a esta cuota.
Los límites de velocidad 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 velocidad.
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 API y para asignar los recursos de FedEx de forma efectiva y eficiente.
Preguntas frecuentes
¿Se cuentan para la cuota todas las transacciones 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 |
---|---|
Cuota | Demasiadas solicitudes – Se excedió la cuota diaria de transacciones. Intenta nuevamente después de las 12:00 a. m. GMT. |
Límite de velocidad | Recibimos demasiadas solicitudes en poco tiempo. Espera y vuelve a intentarlo. |
¿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, pero luego la tasa de hits cae por debajo de 3 hits por segundo, no se ha violado el límite de ráfaga. No obstante, si una dirección IP tiene 3 hits por segundo continuamente durante 5 segundos (p.ej. al menos 15 hits en 5 segundos con esta tasa de hits mantenida), entonces se ha violado el límite de ráfaga.