Definisci "oggetto"
Hai un controller per ciascuna risorsa . Dove una risorsa è una cosa fornita dalla tua API ( user
, customer
, student
, sports-team
, ecc.)
Le risorse non necessariamente mappano da uno a uno a oggetti dominio . A volte una risorsa è composta da diversi oggetti di dominio e talvolta diverse risorse fanno riferimento agli stessi oggetti di dominio.
Un controller può restituire diverse rappresentazioni della stessa risorsa, a seconda di come viene chiamato. Generalmente sono solo due.
Un riepilogo della risorsa quando si restituisce un elenco:
GET /students
[
{ id: 1, name: "john smith" },
{ id: 2, name: "jane smythe" }
]
E una rappresentazione dettagliata quando ottieni un oggetto specifico
GET /students/1
{
id: 1,
name: "john smith",
age: 27,
location: "Venezuela"
}
Se una risorsa ha una strong dipendenza da una risorsa genitore (ad esempio, una stanza non può esistere senza la costruzione in cui si trova), avrei ancora un controllore della camera e gestirò la dipendenza tramite le proprietà e la logica aziendale richieste. (vale a dire che room deve specificare building_id
)
Mettere la logica della stanza nel controllore dell'edificio significa dare troppe responsabilità.