Este projeto é um microserviço desenvolvido em Spring Boot que envia e consome dados de uma fila RabbitMQ e grava esses dados em um banco de dados MongoDB. O serviço permite listar as seguintes informações:
- Valor total do pedido.
- Quantidade de pedidos por cliente.
- Lista de pedidos realizados por cliente.
O microserviço consome mensagens da fila RabbitMQ com a seguinte estrutura:
{
"orderId": 1001,
"customerId": 1,
"items": [
{
"product": "lápis",
"quantity": 100,
"price": 1.1
},
{
"product": "caderno",
"quantity": 10,
"price": 1.0
}
]
}
A API REST permite consultar as seguintes informações:
- Enviar o pedido:
- Endpoint:
/orders
- Método:
POST
- Descrição: Envia o pedido para a fila do RabbitMQ
- Endpoint:
- Todos os pedidos:
- Endpoint:
/orders
- Método:
GET
- Endpoint:
- Lista de pedidos realizados por cliente o total dos produtos e a quantidade de pedidos:
- Endpoint:
/api/clientes/{customerId}/orders
- Método:
GET
- Endpoint:
- Spring Boot
- RabbitMQ
- MongoDB
- Docker
- Docker
- Docker Compose
- Java 17 ou superior
- Maven
-
Clone o repositório:
git clone https://github.com/MSpilari/microservice-mongo-rabbitmq cd seu-repositorio
-
Inicie os contêineres do Docker:
docker-compose up -d
-
Configure as variáveis de ambiente no
application.properties
do Spring Boot:spring.data.mongodb.uri=mongodb://localhost:27017/seu-banco-de-dados spring.rabbitmq.host=localhost spring.rabbitmq.port=5672
-
Construa e execute a aplicação Spring Boot:
mvn clean install java -jar target/seu-projeto.jar
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.