Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxjdev/microservice-email-with-amqp-rabbitmq-log4j2
Microsserviço de envio de e-mail com Spring-Mail com AMQP, RabbitMQ, Log4j2, MySQL e Flyway
https://github.com/maxjdev/microservice-email-with-amqp-rabbitmq-log4j2
amqp flyway log4j2 lombok mysql rabbitmq slf4j spring
Last synced: 9 days ago
JSON representation
Microsserviço de envio de e-mail com Spring-Mail com AMQP, RabbitMQ, Log4j2, MySQL e Flyway
- Host: GitHub
- URL: https://github.com/maxjdev/microservice-email-with-amqp-rabbitmq-log4j2
- Owner: maxjdev
- Created: 2024-08-06T21:12:59.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-11T18:35:21.000Z (3 months ago)
- Last Synced: 2024-11-09T03:19:12.709Z (9 days ago)
- Topics: amqp, flyway, log4j2, lombok, mysql, rabbitmq, slf4j, spring
- Language: Java
- Homepage:
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Microsserviço E-mail
## Descrição
Projeto para trabalhar envio de emails usando Spring Mail via requisição http ou por meio de consumo de mensagens com Spring AMQP + RabbitMQ. Alêm disso contém validações, migrações com Flyway, Logs com Slf4j + Log4j2 e persistência no banco de dados MySQL.
## Tecnologias e dependências do projeto
- **RabbitMQ:** Broker de mensagens para comunicação assíncrona.
- **Spring AMQP:** Integração do Spring com RabbitMQ para envio e recebimento de mensagens.
- **Spring Boot:** Base para a criação de microsserviços.
- **Spring Web:** Criação de API RESTful.
- **Spring Devtools:** Ferramentas adicionais para desenvolvimento, como recarga automática.
- **Spring Data JPA:** Abstração para acesso a dados e manipulação de entidades JPA.
- **Spring Validation:** Validação de dados de entrada.
- **Slf4j + Log4j2:** Frameworks para logging com configuração avançada e personalizada.
- **Lombok:** Redução de boilerplate de código, como getters, setters e construtores.
- **MySQL:** Banco de dados relacional (SQL) para persistência de dados.
- **Flyway:** Ferramenta de migração de banco de dados para versionamento e controle de esquema.## Testar o projeto
- Com docker e docker-compose instalados navegue até o diretório do projeto, abra seu terminal e digite o seguinte comando
```bash
docker-compose up -d
```- Adicione seu username e password nas configurações do Spring-Mail do projeto.
- Adicione seu address nas configurações do RabbitMQ do projeto
- Inicie o projeto.
```bash
./gradlew bootRun
```## Endpoints
| route | description |
|----------------------------------------|---------------------------------------------------------------------------|
| POST /email/post/send-email | Envia e-mail passando o JSON no body |
| GET /email/get/emails | Recebe uma Page de e-mails passando argumentos page e items |#### Objeto JSON
```json
{
"ownerRef": "12345",
"emailFrom": "[email protected]",
"emailTo": "[email protected]",
"subject": "Assunto do Email",
"text": "Conteúdo do email aqui."
}
```## Contribuição
- Faça um fork deste repositório e envie suas alterações por meio de pull requests.
- Para reportar bugs ou sugerir melhorias, abra um issue na página do projeto.