Im довольно новый для REST, но насколько я понял, я понимаю, что следующий URL-адрес соответствует принципам REST. Где ресурсы распределяются следующим образом:
/user/<username>/library/book/<id>/tags
^ ^ ^ ^
|---------|-----------|---|- user resource with username as a variable
|-----------|---|- many to one collection (books)
|---|- book id
|- many to one collection (tags)
GET /user/dave/library/book //retrieves a list of books id's
GET /user/dave/library/book/1 //retrieves info on book id=1
GET /user/dave/library/book/1/tags //retrieves tags collection (book id=1)
Однако как можно оптимизировать этот пример API? Скажем, например, у меня есть 10K книг в моей библиотеке, и я хочу получить детали каждой книги в своей библиотеке. должен ли я действительно заставить http-вызов /library/book/<id>
для каждого идентификатора, указанного в /library/book
? Или я должен включить несколько идентификаторов в качестве параметров? /library/book/<id1>,<id2>...
и делать то же самое, что и массовое извлечение со 100 id за раз?
Что говорят принципы REST об этой ситуации? и каковы ваши мнения?
Еще раз спасибо.