Este projeto exemplica a implementação de uma aplicação que consome um serviço de conversão de moedas estrangeiras e fornece a cotação por segmento de negócio. Construída em .NET 5 sob um arquitetura hexagonal e aplicando os conceitos de Domain-Driven Design.
- .NET 5
- Entity Framework 5
- Microsoft SQL Server on Linux for Docker
- FluentValidation
- Swagger - Documentação.
- Mediatr
- Polly
- Docker
- CurrConv API - Conversão de moedas.
Acesse o site CurrConv API, crie uma conta e obtenha a chave de acesso para uso dos serviços disponíveis (se já possuir uma conta na plataforma, poderá ser utilizada) Abra o arquivo itaucoinexchange-api.env e altere o valor da variável CurrconvApiOptions__ApiKey para a chave obtida.
Iniciar a aplicação
docker-compose -f docker-compose.itau-coin-exchange.yml up --build
O arquivo docker-compose.itau-coin-exchange.yml configura o container para a aplicação e para o banco de dados SQL Server.
Acesse https://localhost:5000/swagger/index.html para abrir a especificação da API.
Retorna todos os segmentos cadastrados.
Response
{
"Success": true,
"Data": [
{
"Id": "1568974",
"Name": "Private",
"ExchangeRate": 0.1
},
{
"Id": "658568",
"Name": "Varejo",
"ExchangeRate": 0.25
},
{
"Id": "6653178864",
"Name": "Segmento Personnalite",
"ExchangeRate": 0.36
}
],
"Messages": []
}
Atualiza a taxa de câmbio do segmento selecionado.
Response
{
"Success": true,
"Data":
{
"Id": "6653178864",
"Name": "Segmento Personnalite",
"ExchangeRate": 0.36
},
"Messages": []
}
Consulta a conversão de um montante para Real(BRL).
Response
{
"Success": true,
"Data":
{
"SegmentId": "6653178864",
"SegmentName": "Segmento Personnalite",
"CoinFrom": "USD",
"Amount": 10.00,
"CoinTo": BRL,
"ConvertedAmount": 54.67
},
"Messages": []
}