O user-service é um microserviço responsável pelo gerenciamento de usuários. Ele permite a criação, atualização, busca e exclusão de usuários, além de fornecer endpoints para listar todos os usuários.
- Criação de novos usuários
- Atualização de informações de usuários existentes
- Busca de usuários por ID ou CPF
- Listagem de todos os usuários
- Exclusão de usuários
user-service
│── coverage
│── docker
│ └── Dockerfile_node
│── node_modules
│── src
│ ├── application
│ │ ├── controllers # Controladores das rotas
│ │ ├── usecases # Casos de uso do sistema
│ │ ├── utils # Funções auxiliares
│ ├── domain
│ │ ├── entities # Entidades principais do domínio
│ ├── infrastructure
│ │ ├── config # Configurações gerais
│ │ ├── external # Comunicação com serviços externos
│ │ ├── mappers # Mapeamento entre entidades e models
│ │ ├── routes # Definição das rotas da API
│ ├── interfaces # Gateways para interação entre camadas
│ ├── types # Definições de tipos para o TypeScript
│── .env # Configuração de variáveis de ambiente
│── Dockerfile_node # Configuração do Docker
│── package.json # Dependências do projeto
│── README.md # Documentação do projeto
- Node.js (TypeScript)
- Express.js (Framework para API)
- Sequelize (ORM para PostgreSQL)
- Docker (Contêinerização do serviço)
Antes de rodar o projeto, garanta que você tenha instalado:
- Docker
Crie um arquivo .env na raiz do projeto e adicione:
DATABASE_URL=postgres://user:password@postgres-db:5432/user-service
APP_URL=http://localhost:3001
docker build -t user-service .
docker run --env-file .env -p 3001:3001 user-service
Isso iniciará o serviço junto com o banco de dados PostgreSQL.
Caso queira rodar manualmente sem Docker:
npm install
npm run dev
POST /user/create
Body (application/json):
{
"cpf": "12345678901",
"name": "John Doe",
"username": "johndoe",
"password": "password123"
}
GET /user/id/:id
GET /user/search/:cpf
GET /user/all
PUT /user/update/:id
Body (application/json):
{
"name": "John Doe Updated",
"username": "johndoeupdated",
"password": "newpassword123"
}
DELETE /user/delete/:id
Caso tenha dúvidas ou sugestões, entre em contato pelo repositório!