Este projeto é um exemplo de microserviços usando .NET 8, MassTransit, RabbitMQ e MySQL, que está ainda em desenvolvimento. Ele possui dois serviços principais:
- Order.API – serviço de pedidos, com banco de dados MySQL.
- Payment.API – serviço de pagamentos, comunicando-se via RabbitMQ.
O projeto está configurado para execução local ou em container Docker, com Swagger disponível para teste das APIs.
- .NET 8 (ASP.NET Core)
- MassTransit + RabbitMQ
- MySQL
- Docker / Docker Compose (opcional)
- AutoMapper
- Swagger (API Explorer)
/Order.API
Order.API.csproj
Program.cs
/Payment.API
Payment.API.csproj
Program.cs
/docker
Dockerfile (opcional)
README.md
- .NET 8 SDK
- Docker Desktop (opcional)
- RabbitMQ (local ou container)
- MySQL (local ou container)
- Host padrão:
localhost - Usuário/pw:
guest/guest - Configuração pode ser alterada em
appsettings.jsonou variáveis de ambiente:
{
"RabbitMQ": {
"Host": "localhost"
}
}- Configure a connection string no
appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "server=localhost;port=3306;database=OrderDB;user=root;password=senha;"
}
}- Clone o repositório:
git clone <URL_DO_REPOSITORIO>
cd <REPOSITORIO>- Restaurar pacotes e build:
cd Order.API
dotnet restore
dotnet build
cd ../Payment.API
dotnet restore
dotnet build- Executar APIs em modo desenvolvimento:
cd Order.API
dotnet run
# Swagger: http://localhost:5104/swagger
cd ../Payment.API
dotnet run
# Swagger: http://localhost:5140/swagger- Build da imagem:
docker build -t order-api ./Order.API
docker build -t payment-api ./Payment.API- Executar containers:
docker run -d -p 5104:80 --name order-api order-api
docker run -d -p 5140:80 --name payment-api payment-api- Acesse as APIs via Swagger:
- Order API:
http://localhost:5104/swagger - Payment API:
http://localhost:5140/swagger
- Projeto ainda em desenvolvimento, feito para testar integração do RabbitMQ via MassTransit.
- HTTPS está desabilitado no container para simplificação.
- MassTransit cria automaticamente filas para os consumidores configurados.
- Para produção, configurar HTTPS, variáveis de ambiente e banco de dados seguro.
- Desenvolvedor: Gabriel Martinho
- E-mail: gabriel@email.com (exemplo)