Skip to content

nataliasouza/webApi-net06

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Web API ASP .NET Core Essencial (.NET 6) - Macoratti

🗓️ Atualizado em 05 de Julho de 2024

🚧 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/

Criação Web API no VS 2022

Version = "v1"

Branch = apiCatalogoV1
Detalhamento das atividades (clique na setinha!)
  1. Criar projeto no VS 2022 Community – ApiCatalogo.
  2. Criar o projeto com opção para habilitar a Open API e usar Controllers.
  3. Criar o modelo de entidades – Produto e Categoria.
  4. Configurar o projeto para usar o EF Core e incluir referências ao EF Core.
  5. Definir o banco de dados usado – MySql e MySQL Workbench.
  6. Definir a classe de contexto do EF Core – AppDbContext
  7. Definir o mapeamento de entidades para as tabelas – DbSet
  8. Registrar o contexto como um serviço – Program
  9. Definir a string de conexão no arquivo appsettings.json
  10. Definir o provedor do banco de dados (Pomelo) e obter a string de conexão.
  11. Aplicar o Migrations e criar o banco de dados e as tabelas.
  12. Criar os controladores : ProdutosController e CategoriaController.
  13. Definir os endpoints ou métodos Actions para realizar as operações CRUD.
  14. Utilizar o AutoMapper e criar os DTOs das entidades – ProdutoDTO e CategoriaDTO.
  15. Definir os Data Annotations nos atributos dos DTOS criados.
  16. Introduzir o Padrão Repository.
  17. Introduzir o Padão UnitOfWork.
  18. Paginação - Get/categorias e Get/produtos.
  19. Criação dos Filters - LogginsFilter.
  20. Tratamentos de Erros.
  21. Criação e Customização dos Loggings.
  22. Registro dos Loggings em .txt
  23. Programação Assíncrona - Repositório, Paginação e Controladores.
  24. Segurança - Autenticação e Autorização - Identity/JWT.
  25. Registro, Login e Token - AutorizaController.
  26. Configuração do Swagger para utilizar o token JWT.
  27. Implementação CORS.

Version = "v2"

Branch = apiCatalogoV2
Detalhamento das atividades (clique na setinha!)
  1. Criar o Versionamento da API.
  2. Criar e Utilizar o Versionamento do Swagger.

⚠️ Esse versionamento foi criado de uma maneira diferente do apresentado no curso. ⚠️

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/

Version = "comentarios"

Branch = comentariosExplicativos
Detalhamento das atividades (clique na setinha!)
  1. Incluir comentários explicando trechos do código.
  2. Incluir no README detalhamento de como executar a aplicação.
  3. Incluir no README quais ferramentas foram necessárias.

Version = "testesUnitarios"

Branch = testesUnitarios
Detalhamento das atividades (clique na setinha!)
  1. 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

Version = "jaeger-tracing"

Branch = jaeger-tracing
Detalhamento das atividades (clique na setinha!)
  1. Incluir classes para utilizar o tracing. [concluído]
  2. Visualização do Tracing no jaeger. [concluído]

⚠️ No curso não foi demonstrado como utilizar Jaeger ⚠️

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

Próximas atualizações serão voltadas nas seguintes tarefas:

Branch = comentariosExplicativos
  • 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.
Branch = testesUnitarios
  • 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.
Branch = testesIntegrados
  • 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.
Branch = testesBDD
  • Incluir os Testes BDD - Specflow. 🚧[Em construção]🚧
Branch = consumindoAPI
  • Consumir uma API.

Documentação - Version = "v1"


Imagem AutorizaController (clique na setinha!)

image


Imagem CategoriaController e ProdutoController (clique na setinha!)

image

Documentação - Version = "v2"


Imagem ProdutosVDoisController (clique na setinha!)

image

Documentação - Version = "jaeger-tracing"


Imagem Jaeger (clique na setinha!)

tracing1

tracing2

image

image

image

About

Web API ASP .NET Core Essencial (.NET 6)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages