.NET

11 dez, 2017

APIs REST em ASP.NET Core – Guia de Referência

Publicidade

A intenção deste artigo é agrupar os diferentes conteúdos (artigos, vídeos, slides, posts) que venho produzindo sobre a implementação de APIs REST com o ASP.NET Core.

Continuarei mantendo em paralelo listagens similares, nas quais vocês poderão encontrar materiais que vão desde o .NET Core 1.0 e o ASP.NET Core 1.0, além das versões mais recentes da linguagem C# (7.0, 7.1, etc):

 

Autenticação com JWT (JSON Web Tokens)

O uso de JSON Web Tokens (JWT) não é exclusivo da plataforma .NET, já que este padrão aberto conta também com grande aceitação entre desenvolvedores de outras plataformas.

No artigo a seguir demonstro a utilização de JWT como mecanismo de autenticação em APIs criadas com o ASP.NET Core 2.0:

Documentando APIs REST com o Swagger

O Swagger é uma solução que simplifica o processo de documentação de APIs REST, possibilitando inclusive a geração de um site com a descrição dos diferentes recursos disponibilizados por uma aplicação Web. Este mesmo site disponibiliza ainda funcionalidades para a execução de testes com as APIs documentadas.

O artigo a seguir demonstra o uso desta tecnologia em uma API criada com o ASP.NET Core 1.1:

O exemplo deste artigo foi também convertido para o ASP.NET Core 2.0:

Utilizando Docker

O suporte a Docker foi outra das grandes novidades trazidas pelo ASP.NET Core. Os artigos a seguir demonstram a implementação e deployment de APIs REST, utilizando para isto containers Docker:

Acesso a dados relacionais

Além do ADO.NET, temos a opção de implementar APIs em ASP.NET Core empregando o Entity Framework Core e o Dapper (este último, um framework com extensões baseadas no ADO.NET, sendo muito utilizado em situações que exigem uma maior performance em relação a ORMs convencionais como Entity e NHibernate).

O repositório a seguir conta com os projetos ExemploADO e ExemploEFCore, os quais constituem exemplos de uso do ADO.NET e do Entity Framework Core em APIs criadas com o ASP.NET Core 2.0:

Já nestes dois artigos, você encontrará diversos exemplos de utilização do Dapper em APIs REST:

Utilizando NoSQL

Soluções NoSQL como MongoDB, Redis e DocumentDB contam com o suporte do .NET Core, o que viabiliza o uso destas tecnologias em APIs REST multiplataforma construídas com o ASP.NET Core. O artigo a seguir traz exemplos de implementação baseados na versão 2.0:

Consumindo APIs REST

No .NET Core temos a classe HttpClient (namespace System.Net.Http), a qual possibilita a comunicação com APIs REST desenvolvidas nas mais diferentes plataformas.

Os dois artigos a seguir trazem exemplos de utilização do tipo HttpClient, consumindo para isto APIs disponibilizadas gratuitamente pela Marvel Comics e a NASA (Agência Espacial Norte-Americana):

Implementando aplicações ASP.NET Core em Linux

No artigo a seguir foi demonstrada a implementação de uma API REST em Linux, utilizando para isto, o Visual Studio Code e o ASP.NET Core 1.1 (a única diferença em relação à versão 2.0 está no fato de que ao criar um novo projeto, as dependências deste são automaticamente restauradas):

Abordei também a implementação de aplicações ASP.NET Core em Linux em um Live Demo do Canal .NET, empregando para isto o .NET CLI (Command-Line Interface) e o Visual Studio Code:

Compressão

O ASP.NET Core conta com um middleware para a compressão de respostas em APIs REST, fazendo uso para isto do padrão GZIP. A vantagem deste tipo de prática está na diminuição do volume de dados trafegados entre o servidor que processará uma requisição e aplicações-cliente.

No artigo a seguir demonstrei o uso deste recurso em uma API criada com o ASP.NET Core 1.1:

Este mesmo exemplo também foi convertido para o ASP.NET Core 2.0 e está no seguinte repositório (projeto ExemploCompressao):

Referências