Спецификация сервера ретрансляции определяет, как должна выполняться разбивка на страницы, чтобы обеспечить совместимость с клиентом Relay GraphQL. Хотя это не единственный способ разбивки на страницы, он превратился в стандарт - по крайней мере, в примерах, поскольку на него легко ссылаться.
Раздел о соединениях дает больше информация о том, как работают курсоры:
Каждое ребро получает значение курсора. Это значение - то, что они называют - непрозрачное значение, то есть оно не должно интерпретироваться сервером. Это ссылка / указатель, только сервер может интерпретировать . Итак, если у вас есть запрос, который получает набор значений:
edges: [
{ cursor: "abc", node: {...} },
{ cursor: "def", node: {...} },
{ cursor: "ghi", node: {...} },
{ cursor: "jkl", node: {...} },
{ cursor: "mno", node: {...} }
]
, вы можете запросить следующую страницу, посмотрев на курсор последнего элемента mno
и передав его в запрос.
query {
manyQuery(first: 5, after: "mno") {
edges {
cursor
node {...}
}
}
}
Это даст вам следующие 5 узлов. См. Также этот раздел на graphql.org. .
Итак, чтобы ответить на ваш вопрос: строка потенциально может содержать все, что сервер может использовать для ссылки на один из ваших узлов. Например, идентификатор в базе данных. Чтобы устранить соблазн передать произвольное значение от пользователя API, эта строка часто кодируется в формате base64. Значение должно быть бессмысленным для клиента и использоваться только для передачи обратно на сервер.