I'm developing a RESTful API for a Quiz app, which is going to be built with Backbone.js and Marionette. I'm quite new to backbone and was wondering what de best URL structure would be. I have the following resources:
- Answer,
- Question which contains Answers,
- Question Group which contains Questions,
- Quiz which contains Question Groups.
Two possible URL structures come to mind:
GET /quizzes/:idGET /quizzes/:id/questiongroupsGET /quizzes/:id/questiongroups/:idGET /quizzes/:id/questiongroups/:id/questionsGET /quizzes/:id/questiongroups/:id/questions/:idGET /quizzes/:id/questiongroups/:id/questions/:id/answers
or:
GET /quizzes/:idGET /quizzes/:id/questiongroupsGET /questiongroups/:idGET /questiongroups/:id/questions- ...
Now, I have been trying to use both of these options. With the first one, I can't figure out how to define the collections as a property of the parent models in Backbone so that I can use fetch() on them. The problem with the second option is a bit different: as I understand it, Backbone derives the url for a model from its collection, but the collection is a child of another resource, whereas the url for getting a single resource uses another collection, namely the global set of resources.
I'm pretty sure I'd have to override url() in both cases. I tried some things but didn't come up with anything useable at all. Also, I'd rather not override every single url()-model in the app, changing the API structure to suit the preferences of Backbone seems like a better option to me.
Any pointers as to what seems the right way to do it with Backbone would be great!
Thanks