Neste repositório você encontrará um exemplo funcional de microsserviços utilizando ASP.NET 6 com o pacote YARP (Yet Another Reverse Proxy). Uma solução prática para montar seu API Gateway em projetos distribuídos.
- ✅ Educar: Demonstrar como criar um gateway reverso simples com .NET 6 e YARP.
- ✅ Demonstrar: Integrar múltiplos serviços simulando uma arquitetura de microsserviços.
- ✅ Simplificar: Tornar acessível a adoção de YARP para arquiteturas modernas com ASP.NET.
Pré-requisitos: .NET 6 instalado
Dica para Linux:
sudo apt autoremove && sudo apt autoclean && sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
dotnet new webapi -o PrimeiroServico -f net6.0
dotnet new webapi -o SegundoServico -f net6.0
Adicione os pacotes nos dois serviços:
dotnet add package Yarp.ReverseProxy --version 2.0.1
dotnet add package Yarp.Telemetry.Consumption --version 2.0.1
PrimeiroServico:
app.UseRouting();
app.MapGet("/primeiro", async context =>
{
await context.Response.WriteAsync("Primeiro Service");
});
SegundoServico:
app.UseRouting();
app.MapGet("/segundo", async context =>
{
await context.Response.WriteAsync("Segundo Service");
});
dotnet new webapi -o ApiGateway -f net6.0
Adicione os pacotes:
dotnet add package Yarp.ReverseProxy --version 2.0.1
dotnet add package Yarp.Telemetry.Consumption --version 2.0.1
Program.cs
(ouStartup.cs
):
builder.Services.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
app.UseEndpoints(endpoints =>
{
endpoints.MapReverseProxy();
});
appsettings.json
:
{
"ReverseProxy": {
"Clusters": {
"primeiro": {
"Destinations": {
"primeiroServico": { "Address": "https://localhost:5001" }
}
},
"segundo": {
"Destinations": {
"segundoServico": { "Address": "https://localhost:5002" }
}
}
},
"Routes": [
{
"RouteId": "primeiraRoute",
"ClusterId": "primeiro",
"Match": { "Path": "/primeiro/{**catch-all}" }
},
{
"RouteId": "segundaRoute",
"ClusterId": "segundo",
"Match": { "Path": "/segundo/{**catch-all}" }
}
]
}
}
Inicie os três projetos individualmente:
dotnet run
Acesse via browser/postman:
https://localhost:5000/primeiro
https://localhost:5000/segundo
- 💻 Exemplos práticos em ASP.NET 6
- 🎯 YARP com mapeamento por configuração
- 🔁 Conceitos básicos de Reverse Proxy e API Gateway
Este projeto está licenciado sob a MIT License.
Contribuições são bem-vindas!
- 🔧 Abra uma Issue com sugestões ou dúvidas
- 📥 Envie um Pull Request com melhorias
- 💬 Compartilhe com outros devs .NET
Para colaboração, dúvidas ou consultoria, entre em contato:
- ✉️ Pessoal: daniloopro@gmail.com
- 🏢 DevsFree: devsfree@devsfree.com.br
- 📊 dopme.io: contato@dopme.io
- 💼 LinkedIn: Danilo O. Pinheiro