태그 보관물: graphql

graphql

GraphQL에서 “에지”와 “노드”의 의미는 무엇입니까? 포인트를 사용하고 있으며 깨끗한 JSON 구조를 쿼리로

특정 GraphQL 엔드 포인트를 사용하고 있으며 깨끗한 JSON 구조를 쿼리로 제공하고 있지만 결과를 얻으면 “edges”및 “node”태그가 표시됩니다. 명백한 이점없이 내 데이터를 오염시키는 것처럼 보입니다. 왜 거기에 있고 더 빠르고 간단한 데이터 구문 분석을 위해 제거 할 수 있습니까?



답변

간단한 단어로 짧은 소개부터 시작하겠습니다


GraphQl 릴레이 사양

  • 개체를 다시 가져 오는 메커니즘
  • 연결을 통해 페이징하는 방법에 대한 설명
  • 예측 가능하도록 돌연변이 주변의 구조

사이:

  • 연결은 edges, pageInfo… 와 같은 메타 데이터가있는 개체의 모음입니다 .
  • pageInfo이 포함 hasNextPage, hasPreviousPage, startCursor,endCursor

    • hasNextPage 사용 가능한 가장자리가 더 있는지 또는이 연결의 끝에 도달했는지 알려줍니다.
  • 레코드 배열 : 가장자리

    • Edge는 데이터 (노드)를 사용할 수있는 유연성을 제공합니다.
    • edge는 페이지 매김에 도움이 될 것입니다. graphql이 GraphQLList있지만 페이지 매김과 같은 기능은없고 객체 배열 (데이터)에만 해당됩니다.
  • 각 모서리에는

    • a node: 레코드 또는 데이터
    • a cursor: 페이지 매김으로 릴레이하는 데 도움이되는 base64 인코딩 문자열

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

마디:

  • 릴레이를 사용하여 표시해야하는 노드 수를 설정할 수 있습니다. connectionArgs(first, last, after, before)

릴레이 페이지 매김은 다음과 같이 작동합니다.

  • 컬렉션의 모든 개체를 가져오고 first/lastconnectionArgs를 통해 사용되는 x 레코드를 기반으로 슬라이스를 반환 합니다.

  • after/before 노드의 커서를 사용하여 필요한 슬라이스 (데이터) 수를 GraphQL 서버에 표시하는 데 사용됩니다.

nodeDefinitions,, globalFieldId등 고려할 사항이 더 많이 있습니다 .nodeInterfaces

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


답변