2
respostas

Passando parâmetros para CONTROLLER via POSTMAN

Oi, estou com a seguinte dúvida, estou solicitando via POST no método de "Insert" para fazer uma nova inclusao no BD, Porem, quando passo via JSON os parâmetros do objeto vem nulos. Procurei em alguns fóruns e achei a seguinte solução, colocar o [FromBody] antes do nome da Classe passado por paramentro(Segue abaixo).

Queria saber se é utilizado nessa forma, por que no vídeo do instrutor não foi passado da mesma maneira e estou vendo isso pela primeira vez e se existe alguma outra forma de se fazer(sem utilizar o frombody).

CONTROLLER
public IActionResult Insert([FromBody]LivroUpload vm)
        {
            if (ModelState.IsValid)
            {
                var livro = vm.ToLivro();
                livroRepository.Incluir(livro);
                var url = Url.Action("Recuperar", new { id = livro.Id });
                return Created(url, livro);
            }
            return BadRequest(); // 201 - criacao de novo.
        }
POSTMAN
{
    "Titulo": "TESTE NOVO",
    "Subtitulo": "TESTINHO NOVO",
    "Resumo": "aaaa",
    "ImagemCapa": null,
    "Autor": "ABCDEFG",
    "Lista": 0
}
2 respostas

A classe é essa aqui

    public class LivroUpload
    {
        public int Id { get; set; }
        [Required]
        public string Titulo { get; set; }
        public string Subtitulo { get; set; }
        public string Autor { get; set; }
        public string Resumo { get; set; }
        public IFormFile Capa { get; set; }
        public TipoListaLeitura Lista { get; set; }
    }

Olá Renan, tudo certo?

A forma correta é realmente utilizando o [FromBody], ele força a API Web a ler um tipo de corpo da solicitação. Nesta aula o professor vai utilizar no código.

Esse curso é formado de 3 partes, pelo caminho veremos mais a respeito. Na documentação tem uma explicação bacana sobre o assunto.

Espero ter ajudado. Abraços!