Соглашения о метаданных REST-пагинации - PullRequest
1 голос
/ 12 октября 2011

У меня проблемы с поиском какой-либо информации об этом, поэтому я решил спросить у сообщества, есть ли какие-либо соглашения о том, как предоставить конечному пользователю информацию о разбиении на страницы интерфейса REST.

В частности, мне интересно, должен ли я вернуть общее количество объектов, чтобы они могли рассчитать количество страниц, или количество страниц, или оба? Как я должен вернуть эту информацию? Я вижу несколько способов, как это может работать:

  • Отдельный звонок для получения количества результатов. Это потребует нескольких звонков от клиента, поэтому это не кажется оптимальным.
  • Вернуть эту информацию как заголовки в ответе.
  • Добавить эту информацию в мой корневой объект.

Я спрашиваю прежде всего, чтобы я мог не привлекать людей, делая что-то совершенно отличное от любых установленных соглашений, поэтому я буду признателен за любые комментарии о том, как лучше всего, пропустил ли я какие-либо очевидные решения и т. Д.

Спасибо.

1 Ответ

2 голосов
/ 12 октября 2011

Если вы посмотрите здесь http://www.iana.org/assignments/link-relations/link-relations.xml, то есть стандартизированные отношения ссылок для первого, последнего, следующего и предыдущего.Вы должны встроить ссылки в возвращаемое представление и идентифицировать эти ссылки, используя стандартные отношения ссылок.

Ваш клиентский код должен знать эти специальные имена связей и использовать ссылки по мере необходимости.Если в ответе отсутствует «следующая» ссылка, ваш клиент должен предположить, что она находится на последней странице, а если нет «предыдущей» ссылки, то вы должны быть на первой странице.Что касается возврата количества доступных страниц, я не знаю ни одного стандарта, так как этот номер действительно используется только для демонстрационных целей, поэтому он не требует специальных соглашений.

...