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

Posso criar um segundo ReadSessaoDto?

Temos um ReadSessaoDto que nos da apenas a id da sessão, para que seja exibida em uma consulta de filme ou cinema. Caso eu queria fazer uma requisição GET diretamente na sessão, e exibisse mais detalhes, como em qual cinema, qual filme etc eu poderia criar um segundo DTO para a sessão? Ate tentei deixar tudo dentro de um único DTO, porem acaba entrando em loop.

1 resposta
solução!

Olá Matheus

Sim, você pode criar um segundo DTO para a sessão se deseja exibir mais detalhes, como o cinema e o filme. É uma prática comum ter diferentes DTOs para diferentes necessidades de exibição de dados.

Para evitar o loop, você pode usar a anotação JsonIgnore nas propriedades que não deseja serializar no DTO que será retornado na requisição GET da sessão. Dessa forma, essas propriedades não serão incluídas no JSON retornado e não causarão o loop.

Aqui está um exemplo de como você pode criar um segundo DTO para a sessão:

public class ReadSessaoDetalhadaDto
{
    public int Id { get; set; }
    public string Cinema { get; set; }
    public string Filme { get; set; }

    // outras propriedades que você deseja incluir

    [JsonIgnore]
    public ReadSessaoDto Sessao { get; set; }
}

Nesse exemplo, a propriedade Sessao do tipo ReadSessaoDto é marcada com JsonIgnore, para evitar o loop.

Espero que isso te ajude! Se tiver mais alguma dúvida, estou à disposição. Bons estudos!

Espero ter ajudado e bons estudos!