Разбиение данных Microsoft Graph по страницам в приложении
Некоторые запросы GET к Microsoft Graph возвращают несколько страниц данных из-за подкачки на стороне сервера или подкачки на стороне клиента. Данные подкачки помогают повысить производительность приложения и время отклика Microsoft Graph.
Примечание.
Если вам нужны сведения о разбиении по страницам в пакетах SDK для Microsoft Graph, см. статью Страница по коллекции с помощью пакетов SDK Для Microsoft Graph.
Дополнительные сведения о разбиении на страницы см. в следующем видео.
Как работает разбиение на страницы
При разбиении на страницы на стороне клиента клиентское приложение указывает количество результатов, которые microsoft Graph должен вернуть на одной странице с помощью параметров запроса $top, $skip или $skipToken . Поддержка разбиения на страницы на стороне клиента, включая количество результатов, которые клиент может запросить на одной странице, зависит от API и выполняемого запроса. Например, конечная /users
точка поддерживает , но не $skip
поддерживает $top
.
При разбиении на страницы на стороне сервера служба Microsoft Graph возвращает количество результатов по умолчанию на одной странице без указания клиентом количества результатов, возвращаемых с помощью $top
. Например, GET /users
конечная точка возвращает значение по умолчанию 100 результатов на одной странице.
Если для получения всех результатов требуется несколько запросов, Microsoft Graph возвращает @odata.nextLink
свойство в ответе, содержащее URL-адрес следующей страницы результатов. Следующую страницу результатов можно получить, отправив значение URL-адреса свойства @odata.nextLink
в Microsoft Graph. Microsoft Graph продолжит возвращать ссылку на следующую страницу результатов в @odata.nextLink
свойстве с каждым ответом, пока не будет больше страниц результатов для получения. Чтобы прочитать все результаты, необходимо продолжать вызывать Microsoft Graph со свойством @odata.nextLink
, возвращаемым в каждом ответе @odata.nextLink
, пока свойство не будет возвращено.
Например, в следующем примере показано разбиение на страницы на стороне клиента, где клиент использует $top
параметр запроса для запроса до пяти пользователей в клиенте.
GET https://graph.microsoft.com/v1.0/users?$top=5
Если результат содержит больше результатов, Microsoft Graph возвращает @odata.nextLink
свойство, аналогичное следующему, а также первую страницу результатов:
"@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$top=5&$skiptoken=RFNwdAIAAQAAAD8...AAAAAAAA"
Используйте весь URL-адрес в свойстве @odata.nextLink
в запросе GET, чтобы получить следующую страницу результатов. В зависимости от API, к которому выполняется запрос, @odata.nextLink
значение URL-адреса содержит $skiptoken
параметр запроса или $skip
. URL-адрес также содержит все остальные параметры, имеющиеся в исходном запросе. Не пытайтесь извлечь $skiptoken
значение или $skip
используйте его в другом запросе.
Для различных API Microsoft Graph характерны свои особенности разбиения по страницам. При работе со страницами данных необходимо учитывать следующее:
- Страница результатов может содержать ноль или более результатов.
- Разные API могут иметь различные максимальные размеры страницы и размеры страницы по умолчанию.
- Различные API могут работать по-разному, если указанный (с помощью параметра запроса
$top
) размер страницы превышает максимальное значение для соответствующего API. В зависимости от API запрошенный размер страницы может быть проигнорирован, может быть возвращен максимальный размер страницы для соответствующего API или же Microsoft Graph может вернуть ошибку. - Не все ресурсы или связи поддерживают разбиение по страницам. Например, запросы к directoryRole не поддерживают разбиение по страницам. Сюда входит чтение самих объектов ролей и членов роли.
- При разбиении по страницам ресурсов каталога все настраиваемые заголовки запросов (заголовки, которые не являются заголовками авторизации или типа контента), такие как заголовок ConsistencyLevel , по умолчанию не включаются в последующие запросы страницы. Если эти заголовки требуется отправлять в последующие запросы, их необходимо явно настроить.
- При использовании
$count=true
строки запроса при запросе к ресурсам@odata.count
каталога свойство возвращается только на первой странице страничного результированного набора.
Связанные материалы
- Пакеты SDK для Microsoft Graph предоставляют классы и методы, помогающие с разбиением по страницам. Дополнительные сведения см. в разделе Страница через коллекцию с помощью пакетов SDK Для Microsoft Graph.