Rate Limiting

🚦 Política de Rate Limiting

Limites por Endpoint

Endpoint
Limite
Janela

POST /api/v1/payments

100 requests

1 hora

GET /api/v1/payments

500 requests

1 hora

POST /api/v1/auth/login

10 requests

15 minutos

GET /api/monitoring/*

1000 requests

1 hora

Geral

1000 requests

1 hora

Identificação do Cliente

  • IP Address: Para requests não autenticados

  • API Key: Para requests com API key

  • User ID: Para requests autenticados com JWT

📊 Headers de Rate Limit

Headers Retornados

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640999999
X-RateLimit-Window: 3600
Header
Descrição

X-RateLimit-Limit

Limite máximo para a janela

X-RateLimit-Remaining

Requests restantes

X-RateLimit-Reset

Timestamp de reset (Unix)

X-RateLimit-Window

Tamanho da janela (segundos)

⚠️ Resposta de Rate Limit

HTTP 429 - Too Many Requests

Headers Adicionais

🛡️ Estratégias de Rate Limiting

1. Fixed Window

  • Janela fixa (ex: 1 hora)

  • Reset no início da próxima janela

  • Simples de implementar

2. Sliding Window

  • Janela deslizante

  • Mais suave na distribuição

  • Usado para endpoints críticos

3. Token Bucket

  • Balde de tokens que se repõe

  • Permite rajadas controladas

  • Usado para pagamentos

🔧 Configuração

Variáveis de Ambiente

Configuração Redis

📈 Rate Limiting Avançado

Por Tier de Cliente

Tier
Limite por Hora
Burst Limit

Free

100

10

Basic

1,000

50

Premium

10,000

200

Enterprise

100,000

1,000

Por Tipo de Operação

🔍 Monitoramento

Métricas Coletadas

  • Requests por endpoint

  • Rate limit hits por cliente

  • Distribuição temporal de requests

  • Clientes mais ativos

Alertas

Dashboard

🔄 Bypass e Whitelist

Whitelist de IPs

Bypass para Admins

📱 Implementação no Cliente

Handling Rate Limits

Exponential Backoff

🛠️ Configuração por Ambiente

Desenvolvimento

Produção


Documentação atualizada: December 2024

Last updated

Was this helpful?