Control de límites

Con el propósito de mantener una infraestructura estable y con unos tiempos de respuesta correctos, se han aplicado límites en volumen de peticiones concurrentes.

Existen tres tipos de peticiones, FREE, LIGHT y HEAVY y son catalogadas en función de su complejidad y tiempo de proceso ya que tiene un impacto directo en el uso de recursos de servidor.

Las peticiones FREE no tienen ningún coste, por lo que es muy útil su uso para reducir el coste total de uso de la API. Estas peticiones son muy rápidas de proceso ya que ofrecen información sencilla y directa.

Las peticiones LIGHT tienen un coste muy reducido y debido a su nivel de optimización es muy recomendable su uso. Son peticiones que devuelven datos ya existentes de la base de datos y que a menudo se reducen a consultar la información y organizarla para su entrega.

Las peticiones HEAVY tienen un coste superior y acostumbran a ser peticiones de inserción de información en la base de datos. Se deben utilizar únicamente cuando sea necesario, evitando actualizaciones de información innecesaria a través de este método.

Cabe hacer mención que las peticiones de tipo FREE devuelven información que también se encuentran en muchas de las peticiones LIGHT, y es conveniente analizar las llamadas que se realizan para intentar que el uso de las peticiones FREE se maximice todo lo posible.

Otro factor importante es el de obtener los identificadores públicos (pId) a través de llamadas de método FREE siempre que sea posible, con el fin de actualizar información en lugar de eliminar y crear el elemento cada vez.

Por último, insistir en que es una buena práctica para tener buenas prestaciones, intentar minimizar al máximo el número de llamadas a la API. Esto se logrará planificando de manera adecuada cada uno de los pasos de la integración y reaprovechando la información mediante algún tipo de caché o almacenamiento intermedio.

Esta práctica junto con el punto anterior de uso de llamadas FREE aumentará los tiempos de respuesta y minimizará costes. Un mal uso o abuso del número de peticiones hará que al final del periodo de facturación, el importe pueda verse incrementado de forma innecesaria.

Concurrencia de peticiones

El sistema dispone de controles que aplican límites de peticiones por segundo (concurrencia) y por minuto, rechazando aquellas que estén fuera de límites por uno u otro motivo. Estos límites son distintos dependiendo de la versión de API Sync contratada.


Peticiones máximas por minuto

Peticiones máximas por segundo

Free

Light

Heavy

Free

Light

Heavy

Essential

40

12

2

3

1

0.25

Enterprise

200

60

10

10

3

0.5

Enterprise Advanced

600

180

30

10

3

0.5

 


Si el límite por segundo ha sido sobrepasado, el sistema devuelve el mensaje ‘429 Too many request per second’


En el caso de superar el límite de peticiones por minuto, el sistema devuelve el mensaje ‘429 Too many request per minute’. Una vez pasado un minuto, la disponibilidad de peticiones vuelve a su máximo por minuto.

Cada petición a la API devuelve unas cabeceras con información respecto a los límites de uso. Esta información es útil para prever cuando se llegará a los límites de uso y así evitar posibles rechazos de algunas peticiones antes de que se produzcan.

Las cabeceras son las siguientes:

X-RATE-LIMIT-MINUTE-RESET: Informa del tiempo restante para reiniciar el contador de peticiones por minuto.

X-RATE-LIMIT-MINUTE-TYPE0-LIMIT: Informa del número máximo de peticiones de tipo HEAVY por minuto.

X-RATE-LIMIT-MINUTE-TYPE0-Remaining: Informa del número de peticiones disponibles de tipo HEAVY en el minuto actual.

X-RATE-LIMIT-MINUTE-type1-LIMIT: Informa del número máximo de peticiones de tipo LIGHT por minuto.

X-RATE-LIMIT-MINUTE-type1-Remaining: Informa del número de peticiones disponibles de tipo LIGHT en el minuto actual.

X-RATE-LIMIT-MINUTE-Type2-LIMIT: Informa del número máximo de peticiones de tipo FREE por minuto.

X-RATE-LIMIT-MINUTE-Type2-Remaining: Informa del número de peticiones disponibles de tipo FREE en el minuto actual.

X-RATE-LIMIT-monthly-LIMIT: Informa del número máximo de peticiones que se pueden realizar en un mes.

X-RATE-LIMIT-monthly-LIMIT-Remaining-ALL: Informa del número de peticiones disponibles que se pueden realizar en el mes en curso.

X-RATE-LIMIT-monthly-Remaining: Informa del número de peticiones disponibles que se pueden realizar en el mes en curso pero para la APP actual.