Limite de requisições
A limitação de taxa define o número máximo de solicitações que uma aplicação pode fazer à API dentro de um período de tempo especificado. Esse mecanismo é crucial para manter a saúde geral e a confiabilidade dos serviços.
Por que usamos limitação de taxa
A limitação de taxa atende a vários propósitos importantes:
Estabilidade e desempenho da API
Impede que qualquer cliente sobrecarregue nossos servidores com solicitações demais
Garante tempos de resposta consistentes para todos os usuários
Protege os serviços de backend contra picos de tráfego
Mantém padrões de carga previsíveis na infraestrutura
Benefícios de segurança
Defende contra ataques de força bruta
Mitiga ataques distribuídos de negação de serviço (DDoS)
Reduz o impacto de aplicativos cliente mal implementados
Limita os danos causados por credenciais de API comprometidas
Alocação justa de recursos
Garante acesso equitativo aos recursos compartilhados da API entre todos os clientes
Evita que clientes agressivos degradem o serviço para outros usuários
Ajuda a priorizar o tráfego de acordo com as necessidades do negócio
Incentiva padrões eficientes de uso da API
Como a limitação de taxa funciona
Cada endpoint pode ter limites diferentes, definidos por:
Janela de tempo (por minuto, hora ou dia)
Tipo de aplicação (padrão ou empresarial)
Tipo de operação (limites mais altos para operações de leitura, mais baixos para gravações)
Quando você excede seu limite de taxa, você recebe um HTTP 429 (resposta de "Muitas solicitações").
Exemplo de resposta de limite de taxa excedido
Quando você excede o limite de taxa, você receberá uma resposta como esta:
Como lidar com erros 429 de muitas solicitações
Quando você receber um 429 erro, implemente estas estratégias para lidar com ele de forma elegante:
Implemente backoff exponencial com jitter
Backoff exponencial é uma estratégia de repetição em que você aumenta progressivamente o tempo de espera entre as tentativas:
Revise o comportamento da aplicação
Audite seu código para identificar padrões ineficientes de uso da API
Procure por loops não intencionais ou chamadas redundantes à API
Considere agrupar várias operações em uma única solicitação quando aplicável
Distribua suas solicitações de forma mais uniforme ao longo do tempo, em vez de enviá-las em rajadas
Implemente cache
Armazene em cache dados frequentemente acessados e que mudam raramente
Implemente estratégias adequadas de invalidação de cache
Use tempos de expiração de cache apropriados com base na volatilidade dos dados
Considere usar ETags ou cabeçalhos Last-Modified para solicitações condicionais
Atualizado

