Подтвердить что ты не робот

В GraphQL каковы значения "ребер" и "node"?

Я потребляю определенную конечную точку GraphQL, и хотя я поставляю чистую структуру JSON в качестве запроса, когда получаю результаты, я получаю "ребра" и "node". Кажется, что это загрязняет мои данные без очевидной выгоды. Почему он существует, и можно ли избавиться от них для более быстрого и простого анализа данных?

4b9b3361

Ответ 1

Начать с короткого введения простыми словами


Характеристики реле GraphQl

  • механизм повторной установки объекта
  • описание того, как страницы через соединения
  • структура вокруг мутаций, чтобы сделать их предсказуемыми

Connections:

  • соединение представляет собой набор объектов с метаданными таких как edges, pageInfo...
  • pageInfo будет содержать hasNextPage, hasPreviousPage, startCursor, endCursor

    • hasNextPage сообщит нам, есть ли больше доступных ребер, или если weve достигли конца этого соединения.
  • Массив записей: ребра

    • Границы
    • предоставят вам гибкость в использовании ваших данных (node)
    • края помогут вам для разбивки на страницы. Существует graphql GraphQLList, но без таких функций, как разбиение на страницы, только с массивом объектов (данных)
  • Каждый ребро имеет

    • a node: запись или данные
    • a cursor: закодированная строка base64, чтобы помочь реле с разбивкой на страницы

https://facebook.github.io/relay/graphql/connections.htm

Node:

  • каждый node будет иметь курсор
  • вы можете установить количество узлов, которые вам нужно показать с помощью реле connectionArgs(first, last, after, before)

Реляционная разбивка работает как

  • Выбирает все объекты в коллекции и возвращает срез на основе записей first/last x, используемых через connectionArgs

  • after/before используются для указания серверу GraphQL количества требуемых фрагментов (данных) с помощью курсора из node

Есть еще много вещей, которые нужно учитывать, например, nodeDefinitions, globalFieldId, nodeInterfaces

https://github.com/graphql/graphql-relay-js#object-identification