Примечание:
Я начал писать это как комментарий к моему предыдущему ответу . Затем я собирался добавить это как редактирование, но я думаю, что вместо этого он принадлежит как отдельный ответ. Это совершенно другой подход и отдельный ответ сам по себе, поскольку это другой подход.
Чем больше я об этом думаю, тем больше у меня есть два разных ресурса, с которыми вам приходится иметь дело:
- Страница ресурсов
- Каждый ресурс, который собирается на странице
Возможно, я что-то упустил (может быть ... я был виновен в неправильном толковании). Поскольку страница сама по себе является ресурсом, пейджинговая метаинформация действительно является атрибутом ресурса, поэтому размещение ее в URL-адресе не обязательно является неправильным подходом. Если вы рассмотрите, что может быть кэшировано в нисходящем направлении для страницы и / или упоминаться как ресурс в будущем, этот ресурс определяется атрибутами пейджинга и параметрами запроса, поэтому они оба должны быть в URL. Если продолжить с моим слишком длинным ответом, ресурс страницы будет выглядеть примерно так:
http://.../myresource/page-10/3?name=xxx&country=yyy&order=name&orderby=asc
Я думаю, что в этом суть вашего первоначального вопроса. Если сама страница является ресурсом, то URI должен описывать страницу так, что-то вроде page-10
- это мой способ сказать «страница из 10 элементов» , а следующая часть страницы - это номер страницы , Часть запроса содержит фильтр.
Другой ресурс называет каждый элемент, содержащийся на странице. То, как идентифицируются предметы, должно контролироваться ресурсами. Я думаю, что ключевой вопрос состоит в том, стоят ли ресурсы результата самостоятельно или нет. То, как вы представляете ресурсы item , зависит от этой концепции.
Если представления элементов подходят только в контексте страницы, тогда может быть целесообразным включить представление в строку. Если вы сделаете это, идентифицируйте их по отдельности и убедитесь, что вы можете получить их, используя синтаксис URI-фрагмента или дополнительный элемент пути . Похоже, что следующие URL-адреса должны привести к пятому элементу на третьей странице из десяти элементов:
http://.../myresource/page-10/3?...#5
http://.../myresource/page-10/3/5?...
Наибольшим фактором при выборе между этими двумя является то, насколько сильно отдельный элемент связан со страницей. Синтаксис фрагмента значительно более обязателен, чем элемент пути IMHO.
Теперь, если ресурсы элемента являются автономными, а страница является просто результатом запроса (что, я думаю, вполне вероятно, здесь), тогда ресурс страницы должен быть упорядоченным списком URL-адресов для каждого ресурса элемента. В этом случае ресурс элемента должен быть независимым от ресурса страницы. Возможно, вы захотите использовать URI, который основан на атрибуте идентификации самого элемента. Таким образом, вы можете получить что-то вроде:
http://.../myresource/item/42
http://.../myresource/item/307E8599-AD9B-4B32-8612-F8EAF754DFDB
Ключевым решающим фактором является то, являются ли предметы автономными ресурсами или нет. Если это не так, то они являются производными от URI страницы. Если они являются автономными, то они должны иметь свои собственные ресурсы и должны быть включены в ресурс page как ссылки.