Пагинация

Некоторые методы API поддерживают пагинацию. Пагинация — это свойство, при котором сервер возвращает не все результаты сразу, а частями, по страницам. В основном пагинация используется для метода получения списков — List*.

Чтобы получить нужную страницу с результатами, в запросе следует передать параметры:

  • page_token — токен страницы с результатами. Токен следующей страницы можно получить в поле next_page_token при получении списка ресурсов (см. пример ниже).

  • page_size — количество результатов на странице. Доступные значения: от 0 до 1000. Значение по умолчанию: 100.

Примеры

gRPC

gRPC-описание метода List для дисков:

 // Метод возвращает список дисков в заданном каталоге.
 rpc List (ListDisksRequest) returns (ListDisksResponse) {
   option (google.api.http) = { get: "/compute/v1/disks" };
 }
 message ListDisksRequest {
   // Идентификатор каталога.
   // Обязательное поле.
   string folder_id = 1;

   // Максимальное количество результатов на странице.
   int64 page_size = 2;

   // Токен запрашиваемой страницы с результатами.
   string page_token = 3;
 }

 message ListDisksResponse {
   // Список дисков.
   repeated Disk disks = 1;

   // Токен следующей страницы.
   string next_page_token = 2;
 }

REST

Пример REST запроса на получение списка дисков в каталоге:

GET https://compute.api.cloud.yandex.net/compute/v1/disks?folderId=a3s17h9sbq5asdgss12&pageToken=1acdeb26078146e6

Ответ:

{
  "disks": [
    {
      "folderId": "de0m97h0gbq0foeuis03",
      "createdAt": "2018-08-09T12:54:53+00:00",
      "id": "de019dv504rmhoinn3nk",
      "name": "development",
      "zoneId" : "ru-central1-a",
      "typeId" : "network-nvme",
      "size" : 5368709120 
    },
    ...
  ],
  "nextPageToken": "ae08rgjd5smu4bq5n1o4"
}