Este projeto é um exemplo de uma API de lista de compras, com o intuito de mostrar alguns conceitos de arquitetura de software, principalmente CQRS (Command and Query Responsibility Segregation).
A API é uma ASP NET WebAPI usando .NET 7, com o mínimo possível de bibliotecas.
Os links são para estudos e referências de conhecimento.
- Padrão CQRS (link1) (link2)
- Padrão de notificações (notifications pattern) (link)
- Diretórios por funcionalidades (feature folders) (link)
- Logs estruturados (structured logging) (link)
- Tipos nuláveis e não-nuláveis (link)
- Testes unitários (link)
- Testes de APIs (link)
- Documentação Swagger com exemplos (link)
O projeto requer apenas o .NET 7 instalado. A API usa um banco de dados em memória, então não precisa de nenhum banco de dados instalado. Para executar os testes de API, é necessário ter o Postman.
O script runserverlocal.ps1
compila o projeto e executa a API, ouvindo em http://localhost:5000
.
O script rununittests.ps1
executa os testes unitários e gera um relatório de cobertura de testes na pasta TestResults
. Requer o ReportGenerator instalado.
Para rodar os testes de API, importar os arquivos de collection e environment do Postman que estão na pasta tests
e depois iniciar o collection runner (tutorial aqui).