AutoMapper no ASP .NET Core



...

Falaaaaaaaa desenvolvedor, tudo bem????? Apesar da pandemia e da quarentena está tudo bem por aqui e espero que esteja tudo bem por aí também, antes de começar artigo de hoje que é de um tema bem bacana, preciso dizer uma coisa a todos vocês, FIQUEM EM CASA, só assim podemos conseguir vencer essa fase difícil que o mundo está passando.

 

Bom chega de falar sobre a situação do mundo e vamos falar sobre o assunto que trouxe você até esse artigo, o uso do AutoMapper em aplicações .NET Core, um dos micro frameworks mais utilizados quando o assunto é mapear classes e passar dados de umas para as outras.

 

 

Entendendo o AutoMapper

 

Antes de sair codificando, precisamos primeiro entender o que é o AutoMapper e qual o motivo de ele ser tão utilizando principalmente em aplicações de grande porte com muitos objetos.

 

O AutoMapper é uma biblioteca que pode ser considerado um micro framework que ajuda quando o assunto é passar dados de um objeto para o outro, então, ao invés de criar aqueles códigos gigantes para transferir dados de um objeto para o outro, podemos utilizar essa biblioteca para nos auxiliar.

 

Como o próprio nome já diz, quando você configura o AutoMapper ele mapeia as classes que são passadas diretamente para ele, então vamos supor que na Classe1 temos uma propriedade chamada Nome e na Classe2 também temos uma propriedade chamada Nome, quando chamamos o AutoMapper ele verifica quais propriedades tem o mesmo nome de uma classe para outra, no nosso exemplo o Nome e passa esses valores para a classe indicada.

 

Esse micro framework é muito utilizado quando utilizamos o padrão MVVM quando criamos um objeto específico contendo todas as propriedades que serão exibidas na sua camada de visualização e na maioria dos casos ela contém muitos campos de objetos já existentes na nossa aplicação.

 

Também é muito utilizado o padrão DTO (Data Transfer Objects) quando criamos um objeto com uma única finalidade de transportar dados para diferentes camadas da nossa aplicação, segue alguns exemplos comuns que você pode acabar esbarrando: 

User – UserDTO;

Client – ClientDTO;

Service – ServiceDTO;

 

Então o AutoMapper consegue mapear facilmente de DTO para a classe padrão. Será um exemplo semelhante a esse que irei demonstrar hoje.

 

Por fim, entenda que:

o AutoMapper é um “mapeador” de objetos que consegue transferir dados de um objeto para outro.

 

 

Mãos na Massa

 

Agora que a gente já entendeu um pouco sobre o micro framework, vamos botar em prática utilizando um clássico exemplo do padrão DTO.

 

Crie um projeto ASP .NET Core (estou utilizando a versão 2.2, mas funciona em qualquer versão superior a 2.0) com a seguinte estrutura:

 

Agora insira o código da Client e da ClientDTO, perceba que elas têm as mesmas propriedades, porém, para o nosso compilador o tipo Client é diferente do tipo ClientDTO, logo não dá para fazer uma atribuição direta.

 

Client.cs

 

ClientDTO.cs

 

Agora que já temos nossa classe e nossa DTO, vamos instalar o pacote do micro framework via NuGet, abra o gerenciador de pacotes e pesquise por AutoMapper, por fim instale esse:

 

Bacana, já está quase tudo pronto, agora só precisamos configurar a injeção de dependência do AutoMapper na nossa aplicação, para isso vamos utilizar o container nativo do ASP .NET Core.

 

No arquivo Startup.cs, no método ConfigureServices, adicione o seguinte trecho de código:

 

Perceba que eu configurei o mapeamento de Client para ClientDTO e de ClientDTO para Client.

 

Agora só nos resta adicionar o controller que irá fazer uso efetivamente do AutoMapper

 

Então via construtor eu recebo a dependência do AutoMapper, logo após tenho uma lista de Clients e duas rotas, a primeira rota recebe o Id do cliente e retorna um objeto ClientDTO mapeado que contém esse Id.

 

Na segunda rota eu recebo via POST um ClientDTO mapeio as propriedades dele para um objeto Client e retorno todos da lista de Clients.

 

Por fim nesse exemplo conseguimos ver como mapear as propriedades de Client para ClientDTO e de ClientDTO para Client.

 

 

Conclusão

 

O AutoMapper é um micro framework que facilita nossa vida quando o assunto é transferência de dados entre objetos, ele é muito utilizado em aplicações de grande porte e em alguns padrões como por exemplo MVVM e DTO, no artigo de hoje conseguimos ver uma simples implementação do micro framework. Espero que tenha ficado bem claro todos os conceitos e práticas abordados nesse artigo.

 

Enfim, até logo e bons estudos!!!

 

Baixe o projeto clicando aqui.

 

Caso precise entrar em contato, me mande uma mensagem aqui.