Documentação de todos os endpoints internos com parâmetros, respostas, rate limiting e segurança.
Todas as APIs são Route Handlers do Next.js localizados em src/app/api/. Rodam no servidor e são protegidos por rate limiting.
Cada endpoint tem limites por IP com janela de tempo configurável.
Cache em memória com TTL + headers Cache-Control para CDN.
Schemas tipados validam body, query params e headers.
Respostas consistentes com status codes adequados e mensagens claras.
Todos os endpoints da API com detalhes de uso.
/api/chatChatbot com IA usando OpenAI GPT-4 com streaming de resposta.
5 requisições/minuto por IP
message (string), history (array opcional)
Stream de texto (Server-Sent Events)
/api/code-reviewAnálise de código com IA — identifica bugs, sugere melhorias e boas práticas.
10 requisições/minuto por IP
code (string), language (string opcional)
JSON com análise, score e sugestões
/api/contactEnvio de email via Resend com validação reCAPTCHA.
3 requisições/minuto por IP
name, email, message, recaptchaToken
JSON com status de envio
/api/githubEstatísticas do perfil GitHub — repos, stars, followers, linguagens.
30 requisições/minuto por IP
Nenhum
JSON com dados do perfil e repositórios
/api/github/contributorsLista de contribuidores do repositório com avatar e contagem de contribuições.
30 requisições/minuto por IP
Nenhum
Array JSON com login, avatarUrl, profileUrl, contributions
/api/reactionsReações por página (❤️ 🔥 💡). GET retorna contagens e voto do usuário; POST adiciona, remove (toggle) ou troca o voto com deduplicação por IP+path em 24h.
15 requisições/minuto por IP (POST)
GET: ?path=/slug | POST: { path, type }
JSON com { heart, fire, bulb, userVote }
/api/onlineRastreia e retorna visitantes ativos nos últimos 5 minutos via Redis Sorted Set com score de timestamp.
Sem limite explícito (IPs anonimizados)
POST: corpo vazio | GET: sem parâmetros
JSON com { count: number }
/api/searchPOST registra um termo de busca no Redis (Sorted Set). GET retorna os top 8 termos mais buscados (cache 60s). Usado na busca global para sugestões.
POST: 30/min por IP
GET: nenhum | POST: { term: string }
GET: { terms: string[] } | POST: { ok: true }
/api/lighthouseScores do PageSpeed Insights (performance, acessibilidade, boas práticas, SEO) e Web Vitals para uma URL do site. Cache 24h (Redis ou memória).
Sem limite explícito (cache 24h)
?path=/rota &strategy=desktop|mobile &refresh=1 (opcional)
JSON com scores, metrics (LCP, FCP, etc.), source, strategy
/api/newsletterInscrição em "Avise-me de novidades". Validação Zod, honeypot (website), envio do email ao dono via Resend.
3 requisições/hora por IP
{ email: string } (website vazio ou ausente)
JSON com status de sucesso ou erro
/api/pr-generatorGera descrição de PR com IA (GPT-4.1-nano). Body com título, diff ou contexto. Suporte a 4 locales.
5 requisições/minuto por IP (Redis)
{ title, diff?, context?, locale? }
JSON com description (string) ou stream
/api/github-analyzerAnalisa perfil GitHub (repos, linguagens) e gera insights com IA. Validação de username.
3 requisições/minuto por IP (Redis)
{ username: string }
JSON com análise e sugestões
Camadas de segurança que protegem as APIs contra abuso.
Janela deslizante com contagem por IP. Retorna 429 Too Many Requests quando o limite é excedido.
Validação no endpoint de contato para bloquear bots e spam automatizado.
Schemas Zod validam todos os inputs antes do processamento. Dados inválidos recebem 400 Bad Request.
Cache-Control, CORS e headers de segurança configurados no Next.js middleware.
Chaves de API (OpenAI, Resend, reCAPTCHA) armazenadas em variáveis de ambiente, nunca expostas ao cliente.