wróc
Zdjęcie do: AutoMapper w ASP.NET Core API
ikona kalendarz 2023-01-24 12:00:00

AutoMapper w ASP.NET Core API

 Mapowanie klas modelu do obiektów DTO można zautomatyzować przy pomocy np. AutoMappera. Sama biblioteka nie jest już nowością na rynku i liczy sobie ponad 10 lat. Integracja z ASP.NET Core API jest bardzo prosta. Poniżej instrukcja:1. Instalujemy dwie paczki:AutoMapperAutoMapper.Extensions.Microsoft.DependencyInjection2. Tworzymy plik zawierający konfigurację mapowaniausing AutoMapper; using BookStoreApi.Models; using BookStoreApi.Models.Dto; namespace BookStoreApi; public class MappingConfiguration : Profile { public MappingConfiguration() { CreateMap<Book, BookDto>().ReverseMap(); } }Metoda ReverseMap() pozwala na konfigurację mapowania zarówno z typu Book na BookDto jak i z obiektu BookDto na Book. Jeżeli nie potrzebujemy konwersji w drugą stronę możemy pominąć jej wywołanie.3. W pliku Program.cs dodajemy do kontenera DI AutoMapper:builder.Services.AddAutoMapper(typeof(MappingConfiguration));4. Ostatnim krokiem jest wstrzyknięcie interfejsu IMapper do kontrolera i użycie metody Map. Przykład:[ApiController] [Route("api/[controller]")] public class BookStoreController : ControllerBase { private readonly BookStoreDbContext _bookStoreDbContext; private readonly IMapper _mapper; public BookStoreController(BookStoreDbContext bookStoreDbContext, IMapper mapper) { _bookStoreDbContext = bookStoreDbContext; _mapper = mapper; } [HttpGet] public async Task<ActionResult<IEnumerable<BookDto>>> GetBooks() { return Ok(_mapper.Map<List<BookDto>>(await _bookStoreDbContext.Books.ToListAsync())); } }Rezultat po uruchomieniu aplikacji będzie następujący:
Przejdź do pełnego artykułu
ikona autor Autor
Programowanie w .NET
Blog o tematyce związanej z platformą .NET i szeroko pojętym programowaniem. Znajdziesz tu informacje nt. platformy .NET, języka C#, wiadomości o wzorcach projektowych oraz tworzeniu poprawnej architektury oprogramowania.
Przejdź do strony

Wykorzystujemy pliki cookies. Szczegóły znajdziesz w polityce prywatności