Diciamo che sto costruendo un gioco a quiz in cui gli utenti possono creare giochi con esattamente 5 domande e 4 opzioni (giochi, domande e opzioni hanno le loro tabelle di database) per ogni domanda e presumo che io stia usando un front-end MVC e un'API back-end.
Ho sempre avuto questo dilemma su come dovrebbe essere progettata l'API.
Dovrei:
- hanno singole API per giochi, domande e opzioni
- mantieni il gioco come un aggregato di dettagli del gioco, domande e opzioni e lascia che il backend lo riceva nel suo insieme
Lo svantaggio di 1. è che quando creo un nuovo gioco dovrò fare tantissime chiamate API per configurare tutte le domande del gioco e le loro opzioni. Tuttavia, quando aggiorni il gioco o una delle sue domande, è una semplice chiamata all'API di aggiornamento per ogni risorsa con cui abbiamo a che fare.
Il vantaggio di 2. è che la configurazione iniziale è una singola chiamata API. Lo svantaggio diventa evidente quando si aggiorna il database: il backend deve ripetere tutte tutte le domande e le opzioni ancora, anche se è solo una singola domanda che deve essere aggiornata.
Mi mancano altri aspetti di queste due decisioni di progettazione?