🚧 O projeto está em desenvolvimento 🚧
Recursos da ASP .NET Core WEB API utilizados : Roteamento, Padrões de rotas, Tipos de retorno, Model Binding, Data Annotations, Configuração, Filtros, Tratamento de Erros, Logging.
Outros conceitos: Paginação, Programação Assíncrona, Segurança (Identity - JWT), Documentação com Swagger e Testes Unitários.
https://www.udemy.com/course/curso-web-api-asp-net-core-essencial/
Detalhamento das atividades (clique na setinha!)
- Criar projeto no VS 2022 Community – ApiCatalogo.
- Criar o projeto com opção para habilitar a Open API e usar Controllers.
- Criar o modelo de entidades – Produto e Categoria.
- Configurar o projeto para usar o EF Core e incluir referências ao EF Core.
- Definir o banco de dados usado – MySql e MySQL Workbench.
- Definir a classe de contexto do EF Core – AppDbContext
- Definir o mapeamento de entidades para as tabelas – DbSet
- Registrar o contexto como um serviço – Program
- Definir a string de conexão no arquivo appsettings.json
- Definir o provedor do banco de dados (Pomelo) e obter a string de conexão.
- Aplicar o Migrations e criar o banco de dados e as tabelas.
- Criar os controladores : ProdutosController e CategoriaController.
- Definir os endpoints ou métodos Actions para realizar as operações CRUD.
- Utilizar o AutoMapper e criar os DTOs das entidades – ProdutoDTO e CategoriaDTO.
- Definir os Data Annotations nos atributos dos DTOS criados.
- Introduzir o Padrão Repository.
- Introduzir o Padão UnitOfWork.
- Paginação - Get/categorias e Get/produtos.
- Criação dos Filters - LogginsFilter.
- Tratamentos de Erros.
- Criação e Customização dos Loggings.
- Registro dos Loggings em .txt
- Programação Assíncrona - Repositório, Paginação e Controladores.
- Segurança - Autenticação e Autorização - Identity/JWT.
- Registro, Login e Token - AutorizaController.
- Configuração do Swagger para utilizar o token JWT.
- Implementação CORS.
Detalhamento das atividades (clique na setinha!)
- Criar o Versionamento da API.
- Criar e Utilizar o Versionamento do Swagger.
Links utilizados:
https://renatogroffe.medium.com/net-5-asp-net-core-swagger-descomplicando-o-versionamento-de-apis-rest-b3641c34203f
https://blog.christian-schou.dk/how-to-use-api-versioning-in-net-core-web-api/
Detalhamento das atividades (clique na setinha!)
- Incluir comentários explicando trechos do código.
- Incluir no README detalhamento de como executar a aplicação.
- Incluir no README quais ferramentas foram necessárias.
Detalhamento das atividades (clique na setinha!)
- Incluir os Teste Unitários e utilizar o MOQ. [Em Andamento]
Links utilizados:
https://learn.microsoft.com/pt-br/aspnet/core/fundamentals/logging/?view=aspnetcore-6.0
https://stackoverflow.com/questions/43424095/how-to-unit-test-with-ilogger-in-asp-net-core
Detalhamento das atividades (clique na setinha!)
- Incluir classes para utilizar o tracing. [concluído]
- Visualização do Tracing no jaeger. [concluído]
Links utilizados:
Observabilidade em APIs ASP.NET Core com Jaeger - com Henrique Mauri
https://www.youtube.com/watch?v=pKbhVASHolQ
https://henriquemauri.net/jaeger-e-opentelemetry-no-net-6-0/
https://github.com/hgmauri/sample-opentelemetry
- Incluir comentários explicando trechos do código. 🚧[Em construção]🚧
- Incluir no README detalhamento de como executar a aplicação.
- Incluir no README quais ferramentas foram necessárias.
- Incluir os Testes Unitários - XUnit.
- Utilizar MOQ.
- Refatorar CategoriasControllerTestesUnitarios e criar novos testes.
- Utilizar MOQ - Criar Testes Unitários de ProdutosController.
- Utilizar MOQ - Criar Testes Unitários de Repository.
- Incluir os Testes Integrados - XUnit. 🚧[Em construção]🚧
- Criar a class DbMockInitializerIntegrationTest com um método Seed para popular o banco de dados em memória com dados de teste.
- Incluir os Testes BDD - Specflow. 🚧[Em construção]🚧
- Consumir uma API.