Digamos que tengo el objeto A que tiene una referencia al objeto B (en db).
interface A { id: string; bId: string; } interfaceB { id: string; name: string; // other properties }Al crear el objeto A , tengo un componente de autocompletar (con búsqueda de API). En esta situación, solo necesito la propiedad bId de un objeto B para almacenarlo en una base de datos).
Cuando quiero editar el objeto A, o mostrarlo (como una sola entidad o en una tabla) necesito un objeto B (o un objeto parcial) para preseleccionar el componente de autocompletar (para el componente de autocompletar necesito la propiedad de identificación y nombre) . Además, si quiero mostrar el objeto A en una tabla, solo necesito una propiedad de nombre de B.
1 - Tenga un DTO para todo (get/post/put), en ese caso:
interface A { id: string, bId: Partial<B> // in partial object i will have just {name and id} }Para llamadas post/put, una carga útil sería, por ejemplo, {id: 3, {id: 129}} y para solicitudes de obtención, los datos serían {id: 3, {id: 129, nombre: 'Algo'}}
2 - Tener diferentes DTO (que son básicamente iguales en todas menos en una propiedad)
3 - ¿Algo más?
¿Cuál sería una buena práctica para esto?