Пагинация

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

Структура Connection

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

query {
  someCollection {
    nodes {        # the items on this page
      ...
    }
    pageInfo {     # pagination metadata
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    totalCount     # total number of items (all pages)
  }
}

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

Используйте аргументы 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, чтобы отправить нам свой отзыв.
Контент