Através desse projeto, consegui aprofundar meus conhecimentos sobre Clean Architecture e aprender um pouco mais sobre alguns padrões e boas práticas, como a utilização da biblioteca Mediatr, a separação de uma camada para alocar os componentes de injeção de dependência, criação de uma classe de configuração para as entidades e a executar as migrations na camada de infrastructure e a implementar Notificações e entender como pode ser feita a comunicação entre eventos em diferentes partes do sistema sem a necessidade de acoplar diretamente os componentes. Sobre a biblioteca Mediatr, aprendi sobre a criação de pipelines através de Behaviors, onde após o request ser recebido pelo servidor, esse request é encaminhado para o pipeline de requests da aplicação aspnet core, e o pipeline do request da aplicação vai ser responsável por receber, processar e gerar uma resposta. O pipeline da aplicação é composto por middlewares, onde cada middleware vai ser responsável por processar o request de alguma forma, isso inclui operações como: autenticação, roteamento, tratamento de erros, etc. Os Middlewares são executados em ordem um após o outro e cada middleware pode modificar o request ou o response antes de passar para o próximo, esse processo ocorre antes do request chegar na aplicação, o que justifica esse processo ser algo eficiente. Na camada de apresentação desse projeto (API), aprendi como criar filtros de exceções que é um recurso do Aspnet Core, para que sejam interceptadas mensagens de exceções lançadas durante a execução de um request HTTP, com a implementação desse filtro é possível centralizar o tratamento de exceções em um único lugar na aplicação.
GET /members| Parâmetro | Tipo | Descrição |
|---|---|---|
api_key |
string |
A chave da sua API |
GET /members/${id}| Parâmetro | Tipo | Descrição |
|---|---|---|
id |
string |
O ID do item que você quer |
POST /members| Parâmetro | Tipo | Descrição |
|---|---|---|
api_key |
string |
A chave da sua API |
PUT /members/${id}| Parâmetro | Tipo | Descrição |
|---|---|---|
api_key |
string |
A chave da sua API |
DELETE /members/${id}| Parâmetro | Tipo | Descrição |
|---|---|---|
api_key |
string |
A chave da sua API |
Este projeto foi desenvolvido através das video-aulas semanais do professor Macoratti:
Código-fonte do projeto oficial: