Ho un endpoint API che recupera i dati da 3 tabelle SQL sul lato server. Al momento, eseguo un SELECT con join, consolido / riorganizzo i dati selezionati in base a uno schema JSON, quindi invio JSON al client. Il punto qui è che quasi nessuno dei valori dei dati viene modificato, solo la loro struttura viene trasformata dallo schema SQL allo schema JSON.
Sul lato client, mantengo anche 3 tabelle SQL che sono molto simili a quelle sul server. Al momento, analizzo il JSON, ri-trasformo i dati e li salvo in quelle tabelle.
Mi chiedo, sul lato server, se possiamo semplicemente scaricare i dati da ciascuna delle 3 tabelle in JSON senza alcuna trasformazione, in modo che sia il server che il client possano salvare qualsiasi trasformazione / ristrutturazione, considerando le tabelle su entrambi i lati (più o meno) corrispondono nello schema.
Il vantaggio (solo?) di questa idea è ovvio, ma mi chiedo se ci sia qualche serio inconveniente. Per esempi:
-
Perdiamo l'astrazione dei dati sul lato server.
-
Facciamo affidamento sulla stretta corrispondenza tra schemi di tabelle su entrambi i lati, che probabilmente renderà più difficile in futuro modificare / aggiungere colonne a quelle tabelle su entrambi i lati.
-
Può essere OK per un'API interna che viene utilizzata dai client che controllo, ma probabilmente non è così eccezionale per i client / sviluppatori esterni in futuro.
Fino ad ora non riesco a trovare nulla di cui sopra, e non sono sicuro al 100% di quanto siano gravi tutti i problemi.