Pattern del repository, chiama un'altra API che aggiorna un SOR dal servizio o dalla classe del repository?

1

Stiamo lavorando su API che chiamano altre API che recupereranno / aggiorneranno inevitabilmente un sistema di record come SQL, MySQL o altri database. A volte avremo 3/4 livelli di API prima che venga colpito il SOR.

Normalmente userei una classe repository quando eseguo funzioni su un sistema di record direttamente tramite Entity Framework o ADO.NET ecc.

In questo caso, non interagiamo direttamente con un SOR, ma tramite un'altra API.

Questa logica dovrebbe essere presente nel servizio piuttosto che nel repository?

Piuttosto, c'è un vantaggio reale nel separare questo codice in una classe di repository?

Per quanto ne so, una classe di repository non dovrebbe contenere alcuna logica di business.

Lo scopo o il vantaggio principale di un repository per me è la capacità di disaccoppiare il DAL dal resto del codice, ad es. quando si cambia tra ad es. un database SQL e MySQL.

    
posta fransHbrink 03.10.2018 - 00:17
fonte

1 risposta

2

Le chiamate ad altre API dovrebbero andare nel livello del repository.

Il livello di servizio non dovrebbe preoccuparsi di come ottiene i suoi dati, indipendentemente da dove provengano quei dati.

Il lavoro di un repository non comunica con un database, è per interoperare con un'origine dati e astrarre tali dettagli dal resto del sistema. Recupera i dati e, altrettanto importante, traduce i dati dalla lingua e dal layout della fonte alla lingua e al layout del servizio e viceversa , dalle tabelle del database agli oggetti, dagli oggetti JSON agli altri formati .

Questa non è logica aziendale, è logica dei dati e appartiene separata da essa.

    
risposta data 03.10.2018 - 03:27
fonte