Estoy creando una API RESTful simple para una aplicación basada en la web en la que estoy trabajando, y me pregunto cuál es la mejor manera de exponer mis modelos de dominio.
Digamos que tengo una clase de usuario y quiero proporcionar una respuesta JSON con las diversas propiedades del usuario. Obviamente, no quiero exponer públicamente todas las propiedades de mi modelo (cosas como DateCreated, PasswordHash, etc.) debido a problemas de seguridad y ancho de banda.
Leí en Data Transfer Objects y me pregunto si este es el camino a seguir. Si estoy en lo cierto, podría pasar, por ejemplo, un modelo de Usuario a mi DTO de Usuario y asegurarme de que dicho DTO solo permita la exposición de las propiedades del Usuario que elijo (lo que también ayudaría a desacoplar mis modelos de mi API pública).
¿Es adecuada esta solución o hay mejores formas de hacerlo?
Gracias.