Skip to content

API REST Principal

Backend principal da plataforma UTRBUS.

Informações Gerais

ItemDetalhe
Versão1.6.0
RuntimeNode.js 14.17.0
FrameworkExpress 4
BancoMongoDB via Mongoose 6
AuthJWT + Passport.js (passport-jwt)
Porta4589
DocsSwagger UI em /api-docs

Arquitetura

A API segue uma estrutura modular por domínio. Cada módulo é composto por um model (Mongoose), um service (registro de rotas REST via node-restful) e, quando necessário, lógica de negócio separada.

utrbus_api/
├── loader.js            # Entrypoint: carrega server, banco e rotas
├── server.js            # Configuração Express (middlewares, helmet, cors, passport)
├── app.js               # Instância do servidor Express
├── config/
│   ├── database.js      # Conexão MongoDB com auto-discovery
│   ├── passport.js      # Estratégia JWT
│   ├── routes.js        # Registro central de todas as rotas
│   └── environments.js  # Variáveis de ambiente
├── user/                # Autenticação e gestão de usuários
├── cliente/             # Cadastro de clientes
├── colaborador/         # Cadastro e gestão de colaboradores
├── motorista/           # Cadastro de motoristas
├── veiculo/             # Frota de veículos
├── rota/                # Definição e gestão de rotas
├── roteiro/             # Roteirização
├── translado/           # Translados
├── fretamento/          # Fretamentos
├── boarding/            # Registro de embarques (check-in/check-out)
├── integracao/          # Integração com rastreadores externos (XML/RFID)
│   └── integracaoReprocessamentoService.js
├── jornada/             # Jornada do motorista
├── poi/                 # Pontos de interesse (POI)
├── permission/          # Controle de permissões por usuário
├── feature-flag/        # Feature flags dinâmicas
├── helpers/             # Utilitários (email, sender)
├── documentation/       # swagger.json gerado
└── __tests__/           # Testes automatizados (Jest)

Rotas da API

Todas as rotas estão registradas sob o prefixo /api:

RotaMóduloDescrição
/api/useruserAutenticação e usuários
/api/clienteclienteCRUD de clientes
/api/colaboradorcolaboradorCRUD de colaboradores
/api/motoristamotoristaCRUD de motoristas
/api/veiculoveiculoCRUD de veículos
/api/rotarotaCRUD de rotas
/api/roteiroroteiroCRUD de roteiros
/api/transladotransladoCRUD de translados
/api/fretamentofretamentoCRUD de fretamentos
/api/boardingboardingRegistro de embarques
/api/integracaointegracaoIntegrações com rastreadores
/api/jornadajornadaJornada do motorista
/api/poipoiPontos de interesse
/api/permissionpermissionPermissões de usuário
/api-docsswaggerDocumentação interativa

Setup

bash
cd utrbus_api
npm install
cp .env.example .env

Edite o .env com as configurações do ambiente:

dotenv
SECRET=           # Segredo JWT
TOKEN=            # Token de integração
KEY=              # Chave de API externa
SESSION={ session : false }
MONGODB_URI=      # URI MongoDB
MONGODB_URI_TEST= # URI MongoDB (testes)
PORT=4589
NODE_ENV=development
bash
# Desenvolvimento (com nodemon)
npm run dev

# Produção
npm start

# Testes
npm test

# Testes com cobertura
npm run test:coverage

Autenticação

A autenticação é feita via JWT (JSON Web Tokens) usando passport-jwt. O token deve ser enviado no header Authorization como Bearer <token>.

Veja mais detalhes em Autenticação JWT.

Proprietário — Ultra Tecnologias. Todos os direitos reservados.