1
resposta

[Dúvida] Erro ao converter tipo enum api

Olá. Estou criando uma api para praticar os assuntos abordados no curso, tenho uma model de feriados, , segue código:

using advmanagerAPI.Constantes;
using Microsoft.AspNetCore.Mvc;

namespace advmanagerAPI.Models
{

    public class Feriado
    {
        public string? Descricao { get; set; }
        public TipoFeriado TipoFeriado { get; set; }
        public DateTime DataFeriado { get; set; }
    }
}

Nesse model tem um atributo TipoFeriado que é um enum:

namespace advmanagerAPI.Constantes;

public enum TipoFeriado
{
    MUNICIPAL,
    ESTADUAL,
    NACIONAL
}

Abaixo a minha classe controller:

using advmanagerAPI.Models;
using Microsoft.AspNetCore.Mvc;

namespace advmanagerAPI.Controllers;

[ApiController]
[Route("feriados")]

public class FeriadoController : ControllerBase
{
    [HttpPost]
    public void Cadastrar([FromBody] Feriado feriado)
    {
        Console.WriteLine(feriado.Descricao);
        Console.WriteLine(feriado.DataFeriado);
        Console.WriteLine(feriado.TipoFeriado);
    }
}

Até ai tudo certo, quando eu executo a api e vou fazer a chamada do endpoint eu recebo o seguinte erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Elton! Tudo bem?

Acredito que o erro esteja acontecendo porque os nomes dos campos no JSON estão sendo enviados com a primeira letra minúscula, enquanto no seu código os nomes dos campos começam com letra maiúscula. Parece que a API está fazendo diferenciação entre maiúsculas e minúsculas (case-sensitive).

Tente enviar o JSON assim, acho que deve funcionar:

{
  "Descricao": "Emancipação Municipal",
  "TipoFeriado": "MUNICIPAL",
  "DataFeriado": "2024-10-02T00:00:00"
}

Bons estudos!