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
/teamscon alcuni parametri?expand=playero 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
/teamsper 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
/teamsper ottenere gli ID di tutti i team e quindi eseguire query/players/:idsdove: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?