Este projeto consiste em dois microserviços: user-service
e email-service
. O user-service
lida com operações relacionadas a usuários, enquanto o email-service
gerencia o envio de emails. Esses serviços se comunicam de maneira assíncrona via RabbitMQ.
-
Responsável por:
-
Criar Usuários:
- Endpoint
POST /users
: Recebe os dados de um novo usuário no formato JSON e valida essas informações. - O serviço converte os dados recebidos em um objeto de usuário (UserModel) e salva no banco de dados PostgreSQL.
- Endpoint
-
Publicação de Mensagens:
- Utiliza RabbitMQ para enviar mensagens com os detalhes do usuário recém-criado.
- A mensagem contém informações como ID do usuário, email e uma mensagem de boas-vindas.
-
-
POST /users
{
"name": "test",
"email": "[email protected]"
}
user_id | name | |
---|---|---|
425a2251-0206-4f29-9389-f5abd108449b | [email protected] | User Test |
- Exemplo da Tabela no Banco de Dados (TB_USERS)
-
Responsável por:
-
Consumo de Mensagens:
- Escuta a fila do RabbitMQ para mensagens enviadas pelo user-service.
- Quando uma mensagem é recebida, o serviço processa os dados do usuário.
-
Envio de Emails:
- Utiliza o serviço de email (configurado com Mailtrap) para enviar um email de boas-vindas ao novo usuário.
- Armazena detalhes do email enviado no banco de dados PostgreSQL, incluindo status de envio e data.
-
email_id | email_from | email_t | send_date_email | status_email | subject | text | user_id |
---|---|---|---|---|---|---|---|
9fe4c62a-d5f3-4953-9f3d-1c1e619ef7aa | b82be6472ccd50 | [email protected] | 2024-07-16 17:04:23.460796 | SENT | Cadastro realizado com sucesso! | User Test, seja bem vindo(a)! Agradecemos o seu cadastro, aproveite agora todos os recursos da nossa plataforma! | 425a2251-0206-4f29-9389-f5abd108449b |
- Exemplo da Tabela no Banco de Dados (TB_EMAILS)
- Java 21
- Spring Boot
- RabbitMQ
- Docker
- PostgreSQL
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.