Estou criando uma API RESTful simples para um aplicativo baseado na Web em que estou trabalhando e estou pensando sobre a melhor maneira de expor meus modelos de domínio.
Digamos que eu tenho uma classe User e desejo fornecer uma resposta JSON com as várias propriedades do usuário. Obviamente, não quero expor publicamente todas as propriedades do meu modelo (coisas como DateCreated, PasswordHash etc.) devido a problemas de segurança e largura de banda.
Eu li em Data Transfer Objects e estou me perguntando se esse é o caminho a percorrer. Se eu estiver certo, posso passar, por exemplo, um modelo de usuário para o meu DTO do usuário e garantir que o referido DTO permita apenas a exposição das propriedades do usuário que eu escolher (o que também ajudaria a desacoplar meus modelos da minha API pública).
Esta solução é apropriada ou existem maneiras melhores de fazer isso?
Obrigado.