Пагинация

API Altium 365 использует пагинацию на основе курсоров в соответствии со спецификацией Relay connection specification. Запросы коллекций возвращают тип connection, содержащий список узлов, метаданные пагинации и курсоры для перехода вперед или назад по результатам.

Структура Connection

Ответ с пагинацией имеет следующую форму:

query {
  someCollection {
    nodes {        # элементы на этой странице
      ...
    }
    pageInfo {     # метаданные пагинации
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    totalCount     # общее количество элементов (на всех страницах)
  }
}

Получение страниц

Используйте аргументы first и after, чтобы постранично перемещаться вперед по коллекции:

query {
  desProjects(first: 20, after: "{cursor}") {
    nodes {
      id
      name
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
  • first – количество элементов для возврата (размер страницы)

  • after – курсор, обозначающий конец предыдущей страницы; в первом запросе не указывается

endCursor из pageInfo становится значением after для следующей страницы. Продолжайте, пока hasNextPage не станет false.

Для перемещения назад используйте last и before вместе с startCursor.

Первый запрос

Для первой страницы не указывайте аргумент after:

query {
  desProjects(first: 20) {
    nodes {
      id
      name
      updatedAt
    }
    pageInfo {
      hasNextPage
      endCursor
    }
    totalCount
  }
}

Используйте totalCount, чтобы определить, сколько страниц следует ожидать перед началом постраничного запроса.

Подсчет без получения элементов

Если вам нужно только общее количество, можно вообще не запрашивать nodes:

query {
  desProjects {
    totalCount
  }
}

 

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Content