Swagger
DescriçãDescrição TéTécnica do Backend
O backend do projeto éé estruturado de forma modular, com separaçãseparação clara de responsabilidades entre rotas, serviçserviços, middlewares e utilitáutilitários. A aplicaçãaplicação éé desenvolvida utilizando Node.js com Express e toda a API estáestá documentada de forma interativa utilizando o Swagger UI, acessíacessível pelo endereçendereço:
Lembre-se de ter o projeto rodando no docker para funcionar!
Estrutura de DiretóDiretórios
/api/
├── src/
│ ├── docs/ # 📄 ConfiguraçõConfigurações e definiçãdefinição dos endpoints no Swagger
│ │ └── swagger.ts
│
│ ├── middlewares/ # ⚙️ Middlewares diversos, incluindo o multer para uploads
│ │ └── multer.ts
│
│ ├── router/ # 🛣️ DefiniçãDefinição de todas as rotas do sistema organizadas por domídomínio
│ │ ├── avaliador/
│ │ ├── corregedor/
│ │ ├── defensor/
│ │ ├── usuario/
│ │ └── router.ts # Roteador principal que importa e agrupa os mómódulos acima
│
│ ├── services/ # 🧩 Regras de negónegócio e funcionalidades para cada tipo de usuáusuário
│ │ ├── avaliador/
│ │ ├── corregedor/
│ │ ├── defensor/
│ │ └── usuario/
│
│ ├── utils/ # 🔧 UtilitáUtilitários de suporte àà aplicaçãaplicação
│ │ ├── opt/ # Envio de OTPs e recuperaçãrecuperação de senha
│ │ ├── pdf/ # OperaçõOperações de manipulaçãmanipulação e leitura de PDFs
│ │ ├── validations/ # ValidaçõValidações como token, CPF, e campos diversos
│ │ └── ... # Outros utilitáutilitários adicionais
│
│ └── app.tsx # 🎯 Ponto de entrada da aplicaçãaplicação e inicializaçãinicialização dos serviçserviços
DocumentaçãDocumentação Interativa com Swagger
A API conta com documentaçãdocumentação completa utilizando Swagger, onde éé possípossível:
-
Visualizar todos os endpoints
disponídisponíveis -
Ver os
parâparâmetros esperados por cada rota -
Testar
requisiçõrequisições diretamente pela interface -
Visualizar exemplos de respostas de sucesso e erro
Exemplo de rotas documentadas:
-
POST /api/defensor/registrar/triagem
Registra uma triagem commúmúltiplos arquivos PDF, processo e protocolo. -
POST /api/avaliador/pecas/avaliarPermite que um avaliador avalie
peçpeças de um defensor. -
GET /api/usuario/email
Retorna asinformaçõinformações do email mascarado. -
POST /api/corregedor/pecas/aprovar
Permite ao corregedor aprovar ou reprovar uma triagem enviada.
Essas e outras rotas estãestão organizadas por grupos lólógicos (Defensor, Avaliador, Corregedor, UsuáUsuário) dentro do Swagger UI.
Upload de Arquivos com Multer
A aplicaçãaplicação utiliza o middleware Multer para lidar com uploads de arquivos (como PDFs), salvando-os em diretódiretórios especíespecíficos com nomes padronizados conforme o campo da requisiçãrequisição.
A lólógica para isso estáestá implementada em:
src/middlewares/multer.ts
Esse middleware identifica dinamicamente o campo do arquivo (fileRaf, fileProcesso_1, etc.) e direciona o salvamento para a pasta correta, como por exemplo:
-
documentos/raf/ -
documentos/processos/ -
documentos/recursos/ -
documentos/avaliacoes/ documentos/relatorios