1
resposta

Erro na hora de executar o método Patch no Postman

Erro na execução

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Foi retornado - 500 Internal Server Error

Com a seguinte mensagem: AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping

Segue a classe: FilmeController

using AutoMapper;
using FilmesAPI.Data;
using FilmesAPI.Data.Dtos;
using FilmesAPI.Models;
using Microsoft.AspNetCore.JsonPatch;
using Microsoft.AspNetCore.Mvc;

namespace FilmesAPI.Controllers;

[ApiController]
[Route("[controller]")]
public class FilmeController : ControllerBase
{
    private FilmeContext    _context;
    private IMapper         _mapper;

    public FilmeController(FilmeContext context, IMapper mapper)
    {
        _context  = context;
        _mapper = mapper;
    }

    // CÓDIGO OMITIDO

    [HttpPatch("{id}")]
    public IActionResult AtualizaFilmeParcial(int id, JsonPatchDocument<UpdateFilmeDto> patch)
    {
        var filme = _context.Filmes.FirstOrDefault(filme => filme.Id == id);

        if (filme == null)
            return NotFound();

        var filmeParaAtualizar = _mapper.Map<UpdateFilmeDto>(filme);

        patch.ApplyTo(filmeParaAtualizar, ModelState);

        if (!TryValidateModel(filmeParaAtualizar))
        {
            return ValidationProblem(ModelState);
        }

        _mapper.Map(filmeParaAtualizar, filme);
        _context.SaveChanges();

        return NoContent();
    }
}

Segue a classe: FilmeProfile

using AutoMapper;
using FilmesAPI.Data.Dtos;
using FilmesAPI.Models;

namespace FilmesAPI.Profiles
{
    public class FilmeProfile : Profile
    {
        public FilmeProfile()
        {
            CreateMap<CreateFilmeDto, Filme>();
            CreateMap<CreateFilmeDto, Filme>();
            CreateMap<Filme, UpdateFilmeDto>();
        }
    }
}
1 resposta

Você repetiu o CreateMap<CreateFilmeDto, Filme>(); duas vezes. Um delester teria que ser: CreateMap<UpdateFilmeDto, Filme>();