Skip to main content

Swagger

DescriçãDescrição 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:

🔗 http://localhost:3008/api-docs/#/

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 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 com ltiplos arquivos PDF, processo e protocolo.

  • POST /api/avaliador/pecas/avaliar

    Permite que um avaliador avalie peçpeças de um defensor.

  • GET /api/usuario/email
    Retorna as informaçõ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 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 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