ADN Open CIS
Сообщество программистов Autodesk в СНГ

17/02/2014

Разделение на страницы в PLM 360

Основы разбиения на страницы уже описаны в онлайн-справке PLM 360.  Но в сегодняшней статье будет рассказано немного больше.  Кроме того эта статься ответит на вопросы формата «почему оно работает именно так».

Какие конечные точки поддерживают разбиение на страницы?

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

Иногда вызов POSTбудет поддерживать разбиение на страницы.  В таком случае входная полезная нагружка имеет параметры разбиения на страницы, но не строку запроса.  Другое отличие от вызовов POST заключается в том что значения nextUrl и prevUrl являются null PagedCollection.  Поскольку вызовы POST требуют данных из тела HTTP-запроса, URL-адрес не содержит достаточного количества данных для запуска операции. 

Собираясь на край мира

Не существует верхней границы параметра «page».  Если хотите, вы можете получить страницу 100000.  Заброс будет успешным даже в том случае, если список объектов закончится на странице 3.  Не бойтесь, пробуйте.  Попробуйте URL api/v2/workspaces/1/items?page=99999999 на вашем узле.

Вы получите пустой набор.  Вы не получите nextUrl по очевидным причинам, но предоставляется prevUrl.  Это обусловлено тем, что разбиение на страницы REST ещё не содержит параметр totalCount.  Так, REST не имеет сведений о том, содержит ли предыдущая страница элементы, либо не содержит.

PagedCollection для конечных точек, которые не содержат разбиение на страницы

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

  1. Согласованность через API.
  2. Позволяет разбиению на страницы быть добавленным в будущем без смены схемы возврата, которая будет критическим изменением.

 

Источник: [Примечания]

 

Обсуждение: http://adn-cis.org/forum/index.php?topic=568

Опубликовано 17.02.2014
Отредактировано 27.02.2014 в 12:48:38