Sto progettando un'API e sto riscontrando un paio di problemi con alcune parti della modellazione delle risorse.
Ho la nozione di SurveyItem
che come forma collettiva a Survey
:
Survey Resource Endpoint:
http://api.somewhere.com/survey
Accessing Survey Items
http://api.somewhere.com/survey/1/surveyitems
Piuttosto basico e non sono eccessivamente preoccupato di quanto sopra. SurveyItems
non può esistere al di fuori del contesto di un'indagine, quindi la gerarchia.
Dove sto lottando un po 'è il livello successivo. Un SurveyItem
non è necessariamente una cosa (sopportare me) poiché si basa su un'interfaccia implementata ma potresti avere qualcosa come un "Sondaggio semplice" che ti consente di prendere appunti, un "Sondaggio video" ti consentirà di prendere un sondaggio tramite video ecc, quindi sono tutti parte integrante dell'implementazione di base ma potrebbero potenzialmente avere risorse secondarie diverse.
Image and note survey type sample endpoints
http://api.somewhere.com/survey/1/surveyitems/1/images
http://api.somewhere.com/survey/1/surveyitems/1/notes
Video Survey
http://api.somewhere.com/survey/1/surveyitems/2/videos
http://api.somewhere.com/survey/1/surveyitems/2/notes
Come puoi vedere sopra un SurveyItem
può avere diversi endpoint secondari a seconda del tipo di SurveyItem che è. Stavo pensando di modellarlo come sopra ma usando un approccio HATEOAS per rispondere con un URL di raccolta degli endpoint secondari disponibili per ogni singolo tipo di sondaggio in modo che possano essere rilevati dai clienti.
È una cosa ragionevole da fare o ci sono approcci migliori per gestire cose come questa?