Sto lavorando per progettare un'API REST
da consumare da un React
SPA.
Il lato client dello SPA richiede dati su una relazione tra due entità: Team
e Player
dove Teams
ha molti Player
s e Player
s può appartenere solo a un Team
.
Voglio interrogare tutti Team
s e poi ottenere tutti i Player
s per ogni squadra (che potresti immaginare sarebbe un tipico caso d'uso per queste risorse in una SPA.)
Riesco a vedere 3 approcci principali :
-
Espandi l'endpoint
/teams
con alcuni parametri?expand=player
o qualcosa di simile che include un array giocatore per ogni squadra . I dati tornano utili per essere utilizzati dall'applicazione di reazione, ma ora l'endpoint dell'API REST sta diventando più complesso e meno conforme al principio della responsabilità singola. -
Query
/teams
per ottenere gli ID di tutti i team e quindi interrogare ogni squadra/team/:id/players
. Ma questo aumenterà il numero di richieste al back-end, anche se separerà le responsabilità più e renderà le cose più esplicite. -
Query
/teams
per ottenere gli ID di tutti i team e quindi eseguire query/players/:ids
dove:ids
è l'ID di tutti i team . Anche questo è abbastanza esplicito, ma potrebbe comportare un enorme URL e non è bello e ordinato.
Quale approccio è generalmente considerato il migliore? Ovviamente tutti hanno dei compromessi, ma forse sto trascurando alcuni trade-off?