Projeto final do Bootcamp Pottencial .NET Developer realizado na plataforma da DIO em parceria com a Pottencial Seguradora.
🏁 Projeto Concluído
O Projeto consiste em uma Web API construída com ASP.NET Core 6 que realiza as seguintes operações:
- Registrar uma venda
- Buscar uma venda pelo ID
- Atualizar o status de uma venda
Exemplo de um retorno do método GET
- .NET 6
- Entity Framework Core 6
- Banco de dados em memória do EF Core 6
- AutoMapper
- Swagger
Testes unitários
- xUnit
- Moq
Modelspossui as entidades:Sale- VendaSeller- VendedorProduct- ProdutoEnumStatus- para os status de venda utilizei o tipoenum.- Interfaces das classes de repositório e serviço.
DTOssão as classes entidades apenas com as informações necessárias para cada método de ação da classeController.- Usei
Data Annotationpara validar as propriedades das classes nos diretóriosModelseDTOs.
Separei a lógica de persistência das regras de negócios por meio das classes Repository e Service:
Persistencepossui as classes que gerenciam o banco de dados:PaymentContext- para criação do banco de dados e tabelas.BaseRepository- classe abstrata que recebe uma instância protegida da classe contexto através de injeção de dependência.SaleRepository- classe que lida com o acesso aos dados.UnitOfWork- classe com o métodoSaveChanges()para ter certeza que as alterações só serão salvas ao fim das modificações na classe de serviço.
ServicesSaleServices- lida com as regras de negócios.
Mapping- possui as classes que fazem o mapeamento entre as classesModelseDTOs, e as configurações necessárias para as propriedades.ControllersSalesController- recebe uma instância de implementação deISaleServiceeIMapper.
ExtensionsEnumExtensions- classe estática que possui um método, que usa a informação nodata annotationdo enum para apresentar os dados.EnumUpdate- classe com um método para validar a atualização do status.
Testes unitários:
Classe de serviço -
SaleService
Classes de mapeamento -ModelToDtoProfileeDtoToModelProfile
Classe Controller -SaleController
-
Para deixar a documentação swagger mais informativa adicionei comentários xml aos métodos de ação na classe Controller.
-
Usei CSS para alterar a estilização do swagger para a API ficar mais semelhante a identidade visual da Pottencial, usei como base o próprio site da Pottencial.
Para fazer um comparativo adicionei as imagens do antes e depois:
- Imagem da interface padrão do swagger:
- Imagem com a interface da API customizada e com mais informações:
Este projeto está licenciado nos termos da licença MIT.

