Stiamo progettando un'API Web per trasferire oggetti ottenuti da un database a un'applicazione client che è una GUI front-end. La logica di business lato server verrà implementata (nel bene o nel male) nei processi memorizzati.
Per minimizzare la dimensione degli oggetti trasferiti, gli ID interi verranno inviati nel caso in cui un oggetto faccia riferimento a un altro oggetto solo l'ID viene inviato, ad esempio un record del cliente potrebbe consistere in customer id, nome, indirizzo e company_id e ci sarebbe un metodo separato per inviare società che potrebbero essere rappresentate da company_id, name.
Quindi il client avrà un set di oggetti DTO minimi con solo campi dati senza riferimenti a oggetti. La mia domanda è se sia normale prendere questi oggetti e poi usarli per costruire oggetti più ricchi che contengono riferimenti ad altri oggetti? Ulteriori funzionalità aziendali possono anche essere aggiunte a questi oggetti.
Quindi, ad esempio, un oggetto Cliente potrebbe contenere un riferimento a un oggetto Società. Ciò significherebbe avere due versioni di ogni tipo di oggetto. Uno che è un DTO e uno che credo sia un oggetto aziendale.
Oppure avrebbe senso avere un solo tipo di oggetto che ha tutto, con campi ID e di riferimento che vengono popolati dopo che tutti gli oggetti sono stati estratti dal servizio web?