Sistema de consulta de preços da Tabela FIPE integrado à BrasilAPI. O projeto consome dados em tempo real, exibe em uma interface responsiva e gera automaticamente um relatório executivo em PDF na área de trabalho do usuário.
- C# 10 / .NET 10
- ASP.NET Core MVC: Interface do usuário e roteamento.
- Flurl.Http: Consumo fluente e resiliente da API REST.
- QuestPDF: Motor de alta performance para geração de relatórios PDF.
- xUnit: Testes de integração e unitários.
- Bootstrap 5: Layout responsivo e moderno.
O projeto foi construído seguindo os princípios da Clean Architecture (Arquitetura Limpa), separado em camadas para garantir testabilidade e baixo acoplamento:
- Domain: Contém as interfaces (
IFipeService) e modelos de dados (VeiculoFipeResponse). - Infrastructure: Implementa o consumo externo com Flurl e a lógica de geração de documentos com QuestPDF.
- Web/API: Camada de apresentação MVC, controladores e configurações de Injeção de Dependência.
- Tests: Testes automatizados para validar a integração e a saída de arquivos.
- .NET 10 SDK
- Visual Studio 2022 ou VS Code
-
Clone o repositório:
git clone https://github.com/danhpaiva/integration-brasilapi-fipe-net-flurl-pdf.git cd integration-brasilapi-fipe-net-flurl-pdf -
Restaure as dependências:
dotnet restore
-
Execute o projeto Web:
dotnet run --project Integration.BrasilApi.Fipe.Api/Integration.BrasilApi.Fipe.Api.csproj
-
Acesse no navegador:
https://localhost:7102
Para garantir que a integração e a geração de PDF estão funcionando corretamente:
dotnet testNota: Os testes configuram automaticamente a licença Community do QuestPDF e validam se o arquivo é criado corretamente no diretório de usuário.
O sistema utiliza a biblioteca QuestPDF para gerar um documento executivo destinado ao cliente final. O fluxo ocorre da seguinte forma:
- Geração Automática: Assim que o serviço recebe o retorno da BrasilAPI, o PDF é construído em memória e persistido no disco.
- Localização: O arquivo é salvo na Área de Trabalho (Desktop) do usuário logado.
- Nomenclatura: O arquivo segue o padrão
Fipe_CODIGO_FIPE.pdf.
dotnet run --project Integration.BrasilApi.Fipe.Api/Integration.BrasilApi.Fipe.Api.csproj