Skip to main content
nossa API utiliza múltiplas configurações e variáveis de ambiente. entenda as principais configurações para integração abaixo.

configurações principais

URL base da API

https://backend.testeswaffle.org

autenticação

todos os endpoints autenticados requerem um header JWT:
Authorization: Bearer SEU_JWT_TOKEN

variáveis de ambiente

JWT_SECRET
string
required
Secret usado para assinar e verificar tokens JWT
BEEHIIV_API_KEY
string
required
API key para integração com Beehiiv (newsletters)
GEMINI_API_KEY
string
required
API key do Google Gemini para insights automáticos
RESEND_API_KEY
string
required
API key do Resend para envio de emails
FACEBOOK_ACCESS_TOKEN
string
Token de acesso para Facebook Ads API
TIKTOK_ACCESS_TOKEN
string
Token de acesso para TikTok Ads API
SENTRY_AUTH_TOKEN
string
Token para integração com Sentry (monitoramento de erros)

configuração de bancos

nossa API utiliza múltiplos bancos D1 especializados:
DB
D1Database
required
Banco principal da aplicação
  • métricas de ads
  • dados de newsletters
  • configurações gerais
STREAKS
D1Database
required
Banco de gamificação
  • leituras dos usuários
  • cálculos de streak
  • missões e recompensas
CRM
D1Database
Gestão de relacionamento
  • segmentação de usuários
  • campanhas personalizadas
FORMS
D1Database
Formulários dinâmicos
  • submissions de forms
  • validações customizadas
TICKETS
D1Database
Sistema de suporte
  • tickets de usuários
  • histórico de atendimento

headers padrão

requisições autenticadas

{
  "Authorization": "Bearer YOUR_JWT_TOKEN",
  "Content-Type": "application/json"
}

webhooks

{
  "Content-Type": "application/json",
  "X-Webhook-Token": "YOUR_WEBHOOK_TOKEN"
}

rate limits

nossa API utiliza Cloudflare Workers que escala automaticamente sem limites de rate fixos.
  • timeout por requisição: 120 segundos
  • timeout para cache: 50ms
  • scheduled tasks: execução a cada 7 horas

configuração de cache

nosso sistema de cache ultra-otimizado utiliza:
CACHE
KVNamespace
required
Cloudflare KV para cache distribuído
  • TTL automático
  • invalidação inteligente
  • métricas de performance

estratégias de cache

// cache com TTL de 1 hora
await cache.put(key, data, { expirationTtl: 3600 });

// cache com invalidação baseada em tags
await cache.put(key, data, { 
  metadata: { tags: ['metrics', 'ads'] }
});

monitoramento

sentry integration

// configuração automática de error tracking
Sentry.withSentry({
  dsn: "YOUR_SENTRY_DSN",
  tracesSampleRate: 1.0,
})

logs estruturados

todos os endpoints incluem logs estruturados:
{
  "timestamp": "2024-01-15T10:30:00Z",
  "level": "info",
  "endpoint": "/referrals",
  "user_id": "user_123",
  "performance": {
    "duration_ms": 45,
    "cache_hit": true
  }
}

exemplo de configuração completa

name = "waffle-v2"
account_id = "your_account_id"
main = "src/index.ts"

# variáveis públicas
[vars]
JWT_SECRET = "your_jwt_secret"
BEEHIIV_API_KEY = "your_beehiiv_key"

# bancos D1
[[d1_databases]]
binding = "DB"
database_name = "waffle"
database_id = "your_db_id"

[[d1_databases]]
binding = "STREAKS"
database_name = "streaks"
database_id = "your_streaks_id"

# cache KV
[[kv_namespaces]]
binding = "CACHE"
id = "your_kv_id"
desenvolvimento local: use wrangler dev --remote para conectar com bancos reais durante desenvolvimento.