Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Pq usar o CreatedAtAction e não apenas usar o return filme.

Esse é meu código e no fim retornou o filme da mesma forma.

using FilmesApi.Models;
using Microsoft.AspNetCore.Mvc;
using System.Collections;

namespace FilmesApi.Controllers;

[ApiController]
[Route("[controller]")]
public class FilmeController : ControllerBase 
{
    private static List<Filme> filmes = new();
    private static int id = 0;

    [HttpPost]
    public Filme AdicionaFilme([FromBody] Filme filme)
    {
        filme.id = id++;
        filmes.Add(filme);
        return filme;
    }
}
1 resposta
solução!

Resposta do ChatGPT: *A razão pela qual você está utilizando CreatedAtAction para retornar o resultado em vez de simplesmente return filme pode estar relacionada à convenção RESTful de design de APIs.

O método CreatedAtAction cria uma resposta HTTP 201 (Created) com um cabeçalho Location que indica o URI do novo recurso criado. Isso é uma boa prática para indicar que uma nova entidade foi criada com sucesso e fornece ao cliente o link para acessar esse novo recurso.

No seu caso, o CreatedAtAction está sendo usado para indicar que um novo filme foi adicionado e fornece um link para recuperar esse filme pelo seu ID. O cliente pode então fazer uma nova requisição usando esse link para obter os detalhes do filme recém-criado.

Se você simplesmente retornasse filme, o cliente receberia os detalhes do filme, mas não teria uma indicação clara de que um novo recurso foi criado, e não teria um link direto para acessar esse recurso no futuro.

Portanto, a escolha de usar CreatedAtAction é uma boa prática para fornecer uma resposta mais informativa e conforme às convenções RESTful.*