Attualmente sto cercando di creare un'API da utilizzare a fini di reporting. Pertanto, devo solo implementare alcuni endpoint GET
.
Nel mio semplice scenario ci sono due risorse. Un evento e il creatore dell'evento. Ogni evento ha un creatore.
Per un report ho bisogno di tutti gli eventi creati tra un determinato intervallo di tempo.
-
GET /api/Events/?start=someStartDate&end=someEndDate
che mi procurerà quegli eventi. Ora ho bisogno anche dei creatori.
Come si può fare senza chiamare GET /api/Creators/{creatorId}
per ogni evento restituito dalla prima chiamata (che può essere parecchio)?
Non è possibile passare ID evento in quanto sono Guid
s che superano la lunghezza massima dell'URL per GET
.
Ci sono buone pratiche come un nuovo endpoint? Ma come sarebbe questo endpoint?
Ho anche pensato di includere il creatore direttamente in EventResource
. Sfortunatamente, questo mi ha dato anche il mal di testa di un creatore può avere una lista di eventi (che hanno un creatore, che ha eventi, ... e così via).
Avrebbe senso avere due tipi di risorse come una sorta di base-eventresource che ha solo proprietà semplici e una risorsa evento estesa che ha altre risorse incapsulate? Ma dove dovrei disegnare la linea? Inoltre, avrei bisogno di due endpoint per ogni risorsa (base ed estesa) che potrebbero confondere il client.
Spero che qui sia il posto giusto per questo tipo di domande. Forse la soluzione è ovvia ma sono già troppo in profondità per vederlo.