Boa noite galera.
Eu tenho uma duvida sobre o uso de DTO.
Aqui onde trabalho o pessoal tem o padrão de toda entidade tem um DTO.
A gente nunca entrega a entidade pelo rest é sempre o DTO dessa entidade. Isso ta certo?
Boa noite galera.
Eu tenho uma duvida sobre o uso de DTO.
Aqui onde trabalho o pessoal tem o padrão de toda entidade tem um DTO.
A gente nunca entrega a entidade pelo rest é sempre o DTO dessa entidade. Isso ta certo?
Está “errado” se estiver deixando o desenvolvimento burocrático ou virando overhead. No geral faz o SELECT no banco e joga em uma estrutura de dados que represente diretamente o resultado do json, evitando estruturas intermediárias. Se é “dto”, “entidade”, “pojo”, pouco importa, tem que representar o resultado da funcionalidade. Evitar misturas também é importante, minimizando impactos entre funcionalidades diferentes.
Eu também compartilho o que o amigo @javaflex citou pra que complicar, pra que repetição?
Muitas vezes acontece de retornar a mesma entidade em “várias formas diferentes”. Com isso, o DTO pode suprir essa necessidade. O sistema geralmente é muito grande para surgir uma necessidade dessas.
Outra coisa é para deixar o mapeamento livre, independente do retorno. Como assim? Muitas vezes as pessoas tem a necessidade de fazer mapeamento bidirecionais para “facilitar” queries com JPA/HIbernate, e se mapear assim e retornar a entidade para ser serializada em json, pode ocorrer problemas como referência circular.
Gosto de deixar separado objetos da camada de apresentação da camada de domínio, porém não como regra absoluta, mas sim quando for necessário.