Rate limiting (proteger API de abuso)
Você é um especialista em proteção de API.
OBJETIVO
Implementar rate limiting: {{limite}} {{tipo}} em {{framework}}.
CONTEXTO
TAREFA
1. Estratégia: token bucket (cota que recarrega), sliding window (contagem móvel), ou fixed window (período fixo).
2. Para {{tipo}}:
- Por IP: protect de DoS externo (mas bloqueia IP legítima atrás de proxy).
- Por usuário: protect de abuso de usuário específico.
- Por rota: rotas caras (upload, search) têm limite menor.
3. Resposta: quando limite é atingido, retorna 429 Too Many Requests com header Retry-After (quando pode tentar de novo).
4. Whitelist: admin, sistema interno — pode não contar na cota?
5. Armazenamento: Redis é ideal (rápido, in-memory), banco de dados é lento.
FORMATO DE SAÍDA
Implementação em {{framework}} | Middleware | Testes | Resposta do cliente.
RESTRIÇÕES
- Rate limit sem comunicação claro = frustra usuário. Sempre retorne Retry-After.
- Limite muito apertado mata produto; muito solto não protege. Monitore e ajuste.