Это строго вопрос проектирования.
Я мог бы определить ресурс bookc
и использовать его следующим образом:
GET /user/dave/library/book?bookList=...
как дополнительно указать аргумент bookList
на самом деле вопрос того, какое использование вы планируете использовать с этим ресурсом.Вы можете иметь, например:
GET /user/dave/library/book?bookList=1-10
GET /user/dave/library/book?bookList=1,2,5,20-25
или вы можете просто пролистать все книги:
GET /user/dave/library/book?page=7&pagesize=50
Но, на мой взгляд, особенно форму с длинным списком "случайных""идентификаторы кажутся довольно непригодными.Возможно, я бы вместо этого определил параметр filter
, чтобы я мог указать:
GET /user/dave/library/book?filter=key,value&filter=key,value
Что касается вашего вопроса об ограничении длины HTTP-URL, стандарт не устанавливает его.Но браузер может отличаться ... посмотрите на эту SO тему
Чтобы быть более строго RESTful, параметр запроса мог быть указан через заголовки HTTP, но общая идея, которую я хотелПередача не меняется.
Надеюсь, что это вам подходит ...