INTEGRITY Документация

Пагинация

Постраничная навигация, то есть разделение результатов запроса на более мелкие части, выполняется с помощью limit, orderBy, и параметров фильтрации. GraphQL Analytics API не поддерживает курсоры для постраничной навигации.

Запрос страниц без курсоров

В наших примерах предполагается, что date и clientCountryName связи уникальны.

Получите первые n результаты запроса

Чтобы ограничить количество результатов, добавьте limit параметр как целое число. Например, чтобы запросить первые две записи:


firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC]) {
    datetime
    clientCountryName
}

Ответ


{
  "firewallEventsAdaptive" : [
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "UM"
    },
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "US"
    }
  ]
}

Запрос следующей страницы с помощью фильтров

Чтобы получить следующий n результатов укажите фильтр, исключающий последний результат предыдущего запроса. Используя предыдущий пример, это можно сделать, добавив оператор больше чем (_gt) к clientCountryName поле и оператор больше или равно (_geq) к datetime поле. Именно здесь важна точность указания порядка сортировки. При более детальном порядке сортировки вероятность пропустить результаты ниже.


firewallEventsAdaptive (limit: 2, orderBy: [datetime_ASC, clientCountryName_ASC], filter: {datetime_geq: "2018-11-12T00:00:00Z", clientCountryName_gt: "US"}) {
    datetime
    clientCountryName
}

Ответ


{
  "firewallEventsAdaptive" : [
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "UY"
    },
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "UZ"
    }
  ]
}

Запрос предыдущей страницы

Чтобы получить предыдущий n результатов переверните фильтры и порядок сортировки.


firewallEventsAdaptive (limit: 2, orderBy: [datetime_DESC, clientCountryName_DESC, filter: {datetime_leq: "2018-11-12T00:00:00Z", clientCountryName_lt: "UY"}]) {
  datetime
  clientCountryName
}

Ответ


{
  "firewallEventsAdaptive" : [
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "US"
    },
    {
      "datetime": "2018-11-12T00:00:00Z",
      "clientCountryName": "UM"
    }
  ]
}