Skip to main content
O Admin Service é uma API REST em Node.js (Express) que centraliza a gestão administrativa da plataforma NextMed. Esta página descreve a estrutura de alto nível, os módulos e como as requisições fluem no sistema.

Visão geral

O serviço expõe endpoints REST, persiste dados em PostgreSQL via TypeORM, pode ser registrado no Eureka para descoberta de serviços e publica eventos em RabbitMQ. Em ambientes com gateway, o tráfego chega ao Admin Service através do gateway; em desenvolvimento, o cliente pode falar direto com o serviço na porta 8081.
Em produção, o gateway (ex.: porta 8080) encaminha requisições para o Admin Service e adiciona o prefixo /admin-service na maioria dos paths. O path /protocols é exposto sem prefixo.

Camadas da aplicação

CamadaResponsabilidade
HTTP (Express)Rotas, middlewares (CORS, JSON, logger), Swagger/OpenAPI.
ControllersRecebem request, validam entrada, chamam serviços e devolvem response.
ServicesRegras de negócio, orquestração, chamadas a repositórios e integrações.
RepositoriesAcesso a dados (TypeORM), abstração sobre o banco.
InfraTypeORM (PostgreSQL), RabbitMQ, Eureka, serviços externos (ex.: CNPJ, Firebase).

Módulos

O código está organizado por domínio. Cada módulo agrupa rotas, controllers, serviços e repositórios daquele contexto.
MóduloDescrição
UserUsuários (admin, médico, paciente), perfis, aprovação, autenticação (Firebase, etc.).
InstitutionInstituições de saúde, unidades (locais), vínculo com usuários e coordenadores.
ServiceServiços, tipos de serviço, histórico de preços, upload de arquivos.
SpecialtyEspecialidades médicas utilizadas pelos médicos.
ProtocolProtocolos clínicos, versões de formulário, perguntas, opções e faixas de pontuação.
NotificationNotificações e jobs agendados (cron).

Fluxo de uma requisição

Exemplo simplificado: cliente chama um endpoint do Admin Service (com ou sem gateway).
O Swagger/OpenAPI está disponível em /api-docs quando o serviço está rodando, e a documentação Mintlify gera as páginas da API Reference a partir do openapi.json.

Integrações

  • PostgreSQL — Persistência principal via TypeORM (entidades, migrations, repositórios).
  • Eureka — Registro e descoberta do serviço em ambientes que usam Netflix Eureka.
  • RabbitMQ — Publicação de mensagens/eventos para outros serviços.
  • Serviços externos — Ex.: validação de CNPJ, autenticação (Firebase), conforme configuração do projeto.
Em produção, credenciais de banco, filas e serviços externos devem vir de variáveis de ambiente ou de um provedor de segredos, nunca fixas no código.

Próximos passos

Introdução

Recursos da API e base URLs.

API Reference

Endpoints, parâmetros e schemas.