Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
16 de Sep de 2019•0 gostou•3,610 visualizações
Baixar para ler offline
Denunciar
Software
Apresentação sobre boas práticas na implementação de APIs REST com ASP.NET Core. Palestra realizada em evento promovido pela comunidade .NET SP na cidade de São Paulo-SP no dia 29/08/2019.
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
2. • Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience
Contributor (MTAC)
• Mais de 15 anos de experiência na área de
Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET e do
.NET São Paulo
Renato Groffe
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
3. Renato Groffe - Contatos
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
5. ASP.NET Core – Visão Geral
• Atualmente na versão 2.2
• .NET Core 3.0 em Preview
• Aplicações Web mais leves e rápidas
• Multiplataforma (execução em Windows, Linux e
Mac)
• Suporte a Docker
6. Qual o objetivo das dicas a seguir
• Simplificar o desenvolvimento
• Escrever menos código
• Implementar soluções mais elegantes
• Empregar padrões de mercado
7. Removendo valores nulos no retorno de APIs
• Diminuição do tamanho das respostas geradas
por APIs
github.com/renatogroffe/ASPNETCore2.2_RemovendoNullAPIs
8. ApiController + Data Annotations
• Validações com menor trabalho
github.com/renatogroffe/ASPNETCore2.2_ApiController
9. Redis: cache em aplicações Web
github.com/renatogroffe/ASPNETCore2.2_Sql_CacheRedis_API
10. Health Checks
• Novo recurso do ASP.NET Core 2.2 que permite
monitorar a saúde de uma aplicação Web
github.com/renatogroffe/ASP.NET-Core-2.2_AppInsights_HealthChecks
11. Monitoramento
• O Application Insights é um serviço que integra o Microsoft
Azure, estando voltado ao monitoramento de aplicações Web
(sites e serviços)
github.com/renatogroffe/ASP.NET-Core-2.2_AppInsights_HealthChecks_Predicates
12. Documentação/Testes com Swagger
• Geração de um site documentando APIs com
pouquíssimo código, além de contar com
funcionalidades para testes
github.com/renatogroffe/ASPNETCore2.2_APIIndicadores
13. API Conventions
• Novo recurso do ASP.NET Core 2.2 disponibilizado
com o objetivo de simplificar a documentação de
APIs REST com Swagger
github.com/renatogroffe/ASPNETCore2.2_APIIndicadores
14. ActionResult<T>
• Simplifica a codificação de instruções de retorno
em APIs REST
github.com/renatogroffe/MongoDB-DotNetCore2.2
15. Generics + Bancos NoSQL orientados a documentos
• Solução que simplifica a manipulação de
diferentes tipos de documentos vinculados a uma
mesma coleção
github.com/renatogroffe/MongoDB-DotNetCore2.2
16. IHttpClientFactory + Typed Client
• Alternativa para simplificar o consumo de APIs
REST em projetos ASP.NET Core e que utiliza a
classe HttpClient
github.com/renatogroffe/ASP.NET-Core-2.2_NASA-API
17. JWT (JSON Web Tokens)
• Uso de tokens criptografados
• Bearer Authentication
• Emprega HMAC ou RSA
• Tecnologia multiplataforma
• Tokens formados por 3 partes (Header, Payload e Signature)
github.com/renatogroffe/ASPNETCore2.2_JWT-Identity
20. Código Resiliente com Polly
• Biblioteca para a implementação de tratamentos
de falha de maneira descomplicada
21. Suporte a JSON no SQL Server
• Evitar a escrita de várias classes para retorno de
informações e operações de transformação de
dados
github.com/renatogroffe/ASPNETCore2.2_SQLServer-JSON
22. Nuvem + Docker + Escalabilidade + Segurança
• Escalabilidade horizontal facilitada
• Rapidez no deployment, isolamento
• Soluções do tipo PaaS normalmente
contam com suporte a HTTPS
• Azure Web App for Containers, Azure
Kubernetes Service