Setting Up AutoMapper in ASP.NET Core: A Step-by-Step Guide

Configurando o AutoMapper no ASP.NET Core: um guia passo a passo

Integrar o AutoMapper ao seu projeto ASP.NET Core pode simplificar significativamente seus mapeamentos de objeto para objeto, tornando seu código mais limpo e fácil de manter. O AutoMapper é uma biblioteca poderosa projetada para mapear automaticamente propriedades entre diferentes objetos, reduzindo a quantidade de código de mapeamento manual que você precisa escrever. Neste guia, mostraremos as etapas para configurar o AutoMapper em uma aplicação ASP.NET Core, desde a instalação até a configuração e o uso.

Instalando dependências do AutoMapper

A jornada começa adicionando o AutoMapper e suas extensões ASP.NET Core ao seu projeto. Isso pode ser feito facilmente por meio do Gerenciador de Pacotes NuGet ou do Console do Gerenciador de Pacotes com o seguinte comando:

 Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection
 

Este comando não apenas instala o AutoMapper, mas também suas extensões necessárias para uma integração perfeita com o sistema de injeção de dependência do ASP.NET Core.

Criando Perfis de Mapeamento

Os perfis de mapeamento são o cerne da funcionalidade do AutoMapper. São classes onde você define os tipos de origem e destino para seus mapeamentos. Crie um perfil herdando do Profile classe e definindo seus mapeamentos no construtor.

Crie as duas classes User e UserDto

Após configurar a classe UserProfile

Veja como:

using AutoMapper;

 public class UserProfile : Profile
 {
 public UserProfile()
 {
 CreateMap<User, UserDto>();
 // Feel free to add more mappings here
 }
 }


Configurando o AutoMapper em Startup.cs

Assim que seus perfis de mapeamento estiverem prontos, é hora de configurar o AutoMapper em seu aplicativo. Isso é feito no Startup.cs arquivo, dentro do ConfigureServices método. Aqui está o trecho de código para fazer exatamente isso:

 public void ConfigureServices(IServiceCollection services)
 {
 services.AddAutoMapper(typeof(Startup)); // This works if your profiles are in the same assembly as Startup.cs
 // Alternatively, specify assemblies explicitly 
// serviços.AddAutoMapper(typeof(UserProfile).Assembly);

 // Não se esqueça de adicionar serviços de frameworks e quaisquer outros serviços que você possa precisar
 serviços.AddControllersWithViews();
 }
ou em Program.cs
construtor.Services.AddAutoMapper(tipo de(Programa));
// Isso funciona se seus perfis estiverem no mesmo assembly que Startup.cs
// Alternativamente, especifique os assemblies explicitamente
// serviços.AddAutoMapper(typeof(UserProfile).Assembly);

Utilizando o AutoMapper

Com o AutoMapper configurado, agora você pode injetar o IMapper interface com controladores ou serviços para realizar mapeamentos de objetos. Abaixo está um exemplo de como usar o AutoMapper em um controlador:

 
using AutoMapper;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WebApplicationAutomapper.Models;

namespace WebApplicationAutomapper.Controllers
{
public class UsersController : ControllerBase
{

privado somente leitura IMapper _mapper;

Controlador de Usuários público (mapeador IMapper)
{
_mapper = mapeador;
}

público IActionResult GetUserInfo(int userId)
{
Usuário user = GetUserFromDatabase(userId); // Supondo que isso recupere a entidade Usuário
UserDto userDto = _mapper.Map<UserDto>(usuário);
retornar Ok(userDto);
}

Usuário privado GetUserFromDatabase(int userId)
{
lançar nova NotImplementedException();
}
}
}

Testando sua configuração

A etapa final é garantir que a configuração do AutoMapper funcione conforme o esperado. Teste seus endpoints ou serviços que utilizam o AutoMapper para verificar os mapeamentos corretos. É crucial garantir que todas as propriedades estejam mapeadas com precisão e que nenhum dado esteja faltando ou tenha sido transformado incorretamente.

Você pode encontrar todo o código deste repositório no GitHub:

https://github.com/icpmtech/NLayer-Architecture/tree/master/WebApplicationAutomapper

Seguindo estes passos, você integrará o AutoMapper ao seu projeto ASP.NET Core com eficiência. O AutoMapper não só reduz a quantidade de código boilerplate, como também minimiza erros de mapeamento, permitindo que você se concentre na funcionalidade principal do seu aplicativo. Boa programação!

Voltar para o blogue
  • ChatGPT Uncovered Podcast

    Podcast descoberto do ChatGPT

    Pedro Martins

    Podcast descoberto do ChatGPT Podcast descoberto do ChatGPT Explorando as fronteiras dos modelos de conversação de IA Episódio 1: Compreendendo o ChatGPT Publicado em: 15 de maio de 2023 Seu...

    Podcast descoberto do ChatGPT

    Pedro Martins

    Podcast descoberto do ChatGPT Podcast descoberto do ChatGPT Explorando as fronteiras dos modelos de conversação de IA Episódio 1: Compreendendo o ChatGPT Publicado em: 15 de maio de 2023 Seu...

  • Power Apps In-Depth Podcast

    Podcast detalhado do Power Apps

    Pedro Martins

    Podcast detalhado do Power Apps Podcast detalhado do Power Apps Explorando os recursos do Microsoft Power Apps Episódio 1: Introdução ao Power Apps Publicado em: 20 de abril de 2023...

    Podcast detalhado do Power Apps

    Pedro Martins

    Podcast detalhado do Power Apps Podcast detalhado do Power Apps Explorando os recursos do Microsoft Power Apps Episódio 1: Introdução ao Power Apps Publicado em: 20 de abril de 2023...

  • Exploring Power Pages Podcast

    Explorando o podcast Power Pages

    Pedro Martins

    Explorando o podcast Power Pages Explorando o podcast Power Pages Mergulhando no mundo das Power Pages da Microsoft Episódio 1: Primeiros passos com Power Pages Publicado em: 10 de março...

    Explorando o podcast Power Pages

    Pedro Martins

    Explorando o podcast Power Pages Explorando o podcast Power Pages Mergulhando no mundo das Power Pages da Microsoft Episódio 1: Primeiros passos com Power Pages Publicado em: 10 de março...

1 de 3