Rate Limit

Este interceptor determina a quantidade máxima de chamadas permitidas em um determinado intervalo "cheio" de tempo (a partir do horário do servidor), e pode ser inserido no fluxo da API ou do Plano.

No caso de uma API, o interceptor pode ser inserido a nível da API como um todo, de um recurso ou de uma operação. Em todos esses casos, a taxa será incrementada independentemente de quem fez a requisição, respeitando o intervalo configurado. Se adicionado ao fluxo de Plano, será incrementada a taxa específica de quem fez a requisição (app ou access token). Em ambos os casos, é possível adicionar um novo header com a quantidade de requisições restantes.

É fácil confundir o funcionamento do Rate Limit com outro interceptor que controla tráfego, o Spike Arrest. Por isso, incluímos uma definição mais detalhada de cada um, de suas diferenças e exemplos de configuração aqui.

Configuração

rate limit

O interceptor pode ser inserido apenas no fluxo de requisição (request). Para configurá-lo, temos que preencher algumas propriedades, como mostra a imagem acima.

  • Configuration type: Determina o tipo de configuração a ser usada pelo interceptor. Você pode optar por:

    • Total calls: Configura o interceptor pelo total de chamadas.

    • IP: Configura o interceptor pelas chamadas por IP, permitindo bloquear chamadas repetidas de um mesmo IP.

  • Calls: O número total de chamadas aceitas.

  • Interval: Determina o intervalo de tempo em que serão aceitas as chamadas, pode ser por segundo, minuto, hora, dia, semana ou mês.

    O interceptor considera intervalos "cheios". Por exemplo, se configurar um intervalo de minuto e começar a realizar requests às 11:55:55, quando o minuto mudar para 11:56:00, você terá um novo conjunto de requests permitidos para aquele recurso. Funciona da mesma maneira para os outros intervalos.
  • Soft Limit: Permite configurar um percentual adicional de chamadas permitidas, marcando a opção e adicionando o valor no campo % à direita (no exemplo da imagem, configuramos um limite de 300 chamadas por minuto, com 30% de excedente permitido. Ou seja, serão aceitas até 90 chamadas a mais).

    Caso a opção Soft Limit seja marcada, o campo % passa a ser obrigatório. Caso contrário, o Rate Limit funcionará normalmente, tendo como base a quantidade de quota configurada no campo Calls.
  • Return quota header: Se marcado, um parâmetro com a quantidade de requisições restantes será enviado com o header da resposta.

Ao fazer um request, o header do response x-ratelimit-remaining mostra a quantidade de chamadas restantes, e o header x-ratelimit-reset exibe o tempo restante para o próximo intervalo.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]