Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Por que devemos criar uma classe DTO para cada verbo HTTP?

Durante a aula 05 atividade 02, o instrutor cria uma classe DTO para ser utilizada no método de atualizar um filme. Ele explicou que é para separar semânticamente o uso de cada classe, mas para mim não fez muito sentido, pois poderia ter utilizado a classe DTO préviamente criada para utilizar no método de criação de um filme.

Então se, por exemplo, tivéssemos mais 1 método para cada verbo HTTP (é apenas uma suposição, sei que não seria necessário), deveríamos criar uma classe DTO para cada método? Entendo que é uma boa prática ter uma classe apenas com os campos estritamente necessários para fazer a transição de dados através da API, mas não acho que seja necessário criar 10 classes DTO se eu tivesse 10 métodos diferentes.

2 respostas
solução!

Olá, Bruno! Tudo bem?

A ideia de criar uma classe DTO (Data Transfer Object) para cada verbo HTTP não é uma regra estrita, mas sim uma prática que pode ser útil em determinados contextos. A razão principal para essa prática é a separação de responsabilidades e a clareza semântica.

Vamos a um exemplo prático. Imagine que temos uma API para gerenciar filmes. Para criar um novo filme, precisamos de várias informações, como título, diretor, ano de lançamento, etc. Então, temos um DTO de criação que contém todos esses campos. Agora, se quisermos atualizar um filme, talvez não precisemos de todas essas informações. Pode ser que só queiramos atualizar o título e o diretor, mas não o ano de lançamento. Nesse caso, poderíamos ter um DTO de atualização que só contém os campos que podem ser atualizados.

Se utilizássemos o mesmo DTO para a criação e a atualização, estaríamos permitindo que o usuário da API atualizasse campos que não deveriam ser atualizados. Além disso, a semântica do código seria menos clara, pois não seria óbvio quais campos são necessários para cada operação.

No entanto, isso não significa que você precisa de um DTO para cada método ou verbo HTTP. Se vários métodos usam os mesmos campos, pode fazer sentido reutilizar o mesmo DTO. O importante é pensar sobre quais campos são necessários para cada operação e estruturar seus DTOs de acordo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Entendi. Muito obrigado!