source

GraphQL에서 "edge"와 "node"의 의미는 무엇입니까?

ittop 2023. 3. 18. 09:21
반응형

GraphQL에서 "edge"와 "node"의 의미는 무엇입니까?

GraphQL 엔드포인트를 소비하고 있으며 다음 결과를 얻을 수 있습니다.edges그리고.node태그입니다. 질의에 깨끗한 JSON 구조를 제공하므로 이해가 되지 않습니다.

GraphQL 서버가 데이터를 오염시키고 있지만 뚜렷한 이점은 없는 것 같습니다.이러한 용어가 GraphQL 엔드포인트 응답에 포함되는 이유는 무엇입니까?데이터의 보다 빠르고 심플한 해석을 위해 이러한 용어를 삭제할 수 있습니까?

간단한 말로 간단한 소개부터 시작합시다.


GraphQl 릴레이 사양

  • 물체를 다시 조립하는 기구
  • 연결을 통해 호출하는 방법에 대한 설명
  • 돌연변이를 예측하기 위해 변이를 중심으로 하는 구조

연결:

  • connection은 다음과 같은 메타데이터를 가진 개체의 집합입니다.edges,pageInfo...
  • pageInfo에는 다음이 포함됩니다.hasNextPage,hasPreviousPage,startCursor,endCursor

    • hasNextPage사용 가능한 에지가 더 있는지 또는 이 접속의 끝에 도달했는지 여부를 알려줍니다.
  • 레코드 배열: 엣지

    • 엣지는 데이터(노드)를 유연하게 사용할 수 있도록 합니다.
    • 엣지는 페이지 매김에 도움이 됩니다.그래프ql이 있습니다.GraphQLList그러나 페이지 표시와 같은 기능은 없고 객체 배열(데이터)만 있습니다.
  • 각 엣지에는

    • a node: 레코드 또는 데이터
    • a cursor: Base64 인코딩된 문자열로 페이지 번호 지정 릴레이에 도움이 됩니다.

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

노드:

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

릴레이 페이지 번호 지정은 다음과 같이 작동합니다.

  • 컬렉션의 모든 개체를 가져오고 다음을 기준으로 슬라이스를 반환합니다.first/lastx 레코드, connection Args를 통해 사용

  • after/before노드로부터의 커서를 사용하여 GraphQL 서버에 필요한 슬라이스(데이터)의 수를 나타내기 위해 사용됩니다.

고려해야 할 것들이 많이 있다.nodeDefinitions,globalFieldId,nodeInterfaces

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

GraphQL은 Graph Query Language의 약자로 서버와 클라이언트의 두 부분으로 구성됩니다.서버는 효과적으로 그래프 구조를 데이터베이스 앞에 배치하고 쿼리는 해당 그래프를 통과합니다.

컴퓨터 과학 분야:

  • 그래프는 네트워크입니다.
  • 노드는 그 네트워크 내의 정점 중 하나입니다.
  • 엣지는 노드 간의 링크 중 하나입니다.

이 모든 것을 종합하면 GraphQL 쿼리는 GraphQL 서버 인스턴스에 데이터 그래프를 트래버스하여 해당 데이터의 표현을 찾도록 효과적으로 요구합니다.곧 알게 될 거야edges ★★★★★★★★★★★★★★★★★」node그래프에 있는 엔트리를 말 그대로 보고 있기 때문입니다.

의 일반적인 쿼리allXYZ츠키다

{
  _allXYZ {
    edges {
      node {
        // your data shape will be in here
      }
    }
  }
}

언급URL : https://stackoverflow.com/questions/42622912/in-graphql-whats-the-meaning-of-edges-and-node

반응형