Nexus Docs

src/config/routes.ts

src/config/routes.ts

Selecione outros documentos nas abas ou no menu lateral.

src/config/routes.ts

Versão: 1.0
 Última atualização: 27 de agosto de 2025
 Responsável: Ariel Spencer & Fabrício Bahiense

📋 Descrição

O que faz?

Configura e registra todas as rotas da API principal do NexusPlatform para usuários finais, organizando endpoints por entidades e aplicando middleware de autenticação adequado para cada contexto.

Por que existe?

Centraliza a configuração de rotas da aplicação principal, separando rotas públicas (webhooks, login) das privadas (operações autenticadas), mantendo a organização modular e segura do sistema.

Como funciona?

Recebe uma instância do Express e registra rotas em ordem específica: primeiro webhooks (sem auth), depois rotas públicas de usuário, em seguida aplica autenticação JWT global para todas as rotas protegidas.

🔧 Documentação Técnica

Arquitetura

Express App  registerRoutes()  Ordem Específica de Registro:

                               

1. Webhooks (sem auth)
        2. Rotas públicas (/api/user não autorizadas)
        3. Middleware JWT Global
        4. Todas as rotas protegidas
        5. Error Handler

Tecnologias Utilizadas

  • Runtime: Node.js com TypeScript
  • Framework: Express.js
  • Autenticação: JWT (JSON Web Tokens)
  • Middleware: Custom auth e error handling

Estrutura de Pastas

backend/                 
				        # Projeto
└── src/                 
				       # Source
        └── config/                  # Configurações
                └── routes.ts            # Registro de rotas

Estrutura de Rotas

Webhooks (Sem Autenticação)

  • Rotas de webhook configuradas via webhookController
  • Posição: Primeiro na ordem (antes de qualquer middleware de auth)
  • Finalidade: Receber callbacks externos (pagamentos, etc.)

Rotas Não Autorizadas

  • /api/user - Rotas públicas de usuário

Rotas Autorizadas (Autenticação via JWT)

Todas aplicadas após app.use(authenticateJWT):

  • /api/user - Operações autenticadas de usuário
  • /api/subscription - Gerenciamento de assinaturas/planos
  • /api/invoice - Gestão de faturas
  • /api/payment - Métodos de pagamento
  • /api/contact - Gestão individual de contatos
  • /api/contact-list - Gestão de listas de contatos
  • /api/campaign - Campanhas de marketing

📦 Dependências

Dependências Principais

Módulo

Tipo

Finalidade

Express

Framework

Interface de tipos do Express

authenticateJWT

Middleware

Autenticação JWT para usuários

errorHandler

Middleware

Tratamento global de erros

Dependências Internas

  • userRoutes - Rotas autenticadas de usuários
  • userRoutesUnauthorized - Rotas públicas (login, registro)
  • subscriptionRoutes - Gestão de assinaturas/planos
  • invoiceRoutes - Gestão de faturas
  • paymentMethodRoutes - Métodos de pagamento
  • contactRoutes - Gestão individual de contatos
  • contactListRoutes - Gestão de listas de contatos
  • campaignRoutes - Campanhas de marketing
  • webhookController - Manipulação de webhooks externos

🔧 Como Usar

import express from 'express'
import { registerRoutes } from './config/routes'

const app = express()

registerRoutes(app)

⚠️ Ordem de Registro

  1. Webhooks - Externos não têm JWT, precisam estar antes da autenticação
  2. Rotas públicas - Login/registro devem estar antes do middleware de auth
  3. Middleware JWT global - Aplicado apenas uma vez, protege todas as rotas subsequentes
  4. Rotas protegidas - Todas automaticamente autenticadas
  5. Error handler último - Captura erros de toda a aplicação

Colocar authenticateJWT antes dos webhooks quebra callbacks externos.

🐛 Troubleshooting

Problemas Comuns

Webhooks retornando 401 Unauthorized

Sintomas: Callbacks externos falhando com erro de
				autenticação
 Causa: webhookController registrado após authenticateJWT
 Solução: Webhooks devem estar PRIMEIRO na ordem de registro

Usuários não conseguem fazer login

Sintomas: Erro 401 em rotas de login/registro
 Causa: Rotas de login estão sendo protegidas por JWT
 Solução: Verificar se userRoutesUnauthorized está antes do authenticateJWT

Todas as rotas protegidas falhando

Sintomas: Erro 401 em todas as rotas após login
 Causa: authenticateJWT não aplicado ou mal configurado
 Solução: Verificar se middleware está entre rotas
				públicas e protegidas

📚 Referências e Links Úteis


Última revisão: 27 de agosto de 2025 por Ariel Spencer