Attualmente mi sto occupando delle soluzioni per un'architettura, in cui sviluppiamo il client (SPA, Angular) e il backend (ASP.net Core). Quello che mi interessa davvero è la forma di comunicazione tra queste due parti: REST è quasi un dato di fatto, ma invieremo DTO completi o quelli dipendenti dalla vista? Diciamo per esempio, abbiamo la seguente architettura del server:
Il Controller potrebbe semplicemente restituire IndividualDto, che è più o meno il Modello di Dominio Individuale, oppure potrebbe inviare un IndividualOverviewDto, IndividualDetailDto ecc.
Questa sembra essere la strada da percorrere, dal momento che riduce un po 'le dimensioni del payload, ma limiterebbe severamente e accoppiasse il lato client, oltre a non avere la nozione di risorsa. Inoltre, le applicazioni più grandi, come GitHub, di solito offrono anche l'accesso diretto alle API, il che contraddirebbe questo approccio.
Credo che entrambi gli approcci abbiano i loro pro e contro, ma non ho trovato molte discussioni o altre informazioni su questo argomento. Ci sono delle linee guida o anche delle risposte definitive riguardo ai modelli di comunicazione?