Rate Limit
Este interceptor determina a quantidade máxima de chamadas permitidas em um determinado intervalo de tempo (a partir do horário do servidor), e pode ser inserido no fluxo da API ou do Plano.
Para uma API, o interceptor pode ser inserido a nível global, de um recurso ou 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 do Plano, a taxa específica de quem fez a requisição (app ou access token) será incrementada. 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, criamos uma FAQ com as definições de Spike Arrest e Rate Limit, suas diferenças e exemplos de configuração. |
Configuração
![rate limit](_images/rate_limit.gif)
O interceptor pode ser inserido apenas no fluxo de requisição (request). Para configurá-lo, preencha as propriedades:
-
Configuration type: determina o tipo de configuração a ser usada pelo interceptor, que pode ser:
-
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.
-
Header: configura um header específico para a restrição de tráfego. Ao selecionar essa opção, você deve informar:
-
Key: a chave do header desejado.
-
Missing header behavior: configura o comportamento para requisições sem o header. Escolha entre:
-
Allow: ignora o processamento do interceptor, permitindo o fluxo da requisição.
-
Total Calls: trata a requisição com base no número total de chamadas.
-
Abort: bloqueia a requisição.
-
-
-
A configuração por header foi criada para atender às exigências regulatórias para APIs de Open Finance, mas você também pode usá-la em seu contexto. |
-
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 permitida. Para isso, marque a opção e adicione o valor no campo % à direita. No exemplo da imagem, configuramos um limite de 300 chamadas por minuto com 30% de excedente permitido, 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.
|
Share your suggestions with us!
Click here and then [+ Submit idea]