2017-12-20 18 views
0

아폴로에서 릴레이 연결을 구현하려고하는데 사양에 문제가 있습니다.아폴로의 GraphQL 릴레이 연결 사양

스키마는 다음과 같습니다

type PageInfo { 
    startCursor: String!, 
    endCursor: String!, 
    hasNextPage: Boolean!, 
    hasPreviousPage: Boolean! 
} 

type User : Node { 
    id: ID! 
    firstname: String 
    lastname: String 
} 

type UserConnection : Connection { 
    pageInfo: PageInfo! 
    edges: [UserEdge!]! 
} 

type UserEdge : Edge { 
    cursor: String! 
    node: User! 
} 

extend type Query { 
    users(first: Int, after: ID, order: String): UserConnection 
} 

의 내가 데시벨에서 100 명의 사용자가 있다고 가정 해 봅시다; 한계 ex.users (첫 번째 : 10)를 사용하여 쿼리 할 때 PageInfo.endCursor는 10 번째 가장자리 또는 100 번째 가장자리를 참조합니다.

더 많은 질문 :

1.Should 나는 다른 쿼리가 hasPreviousPage, hasNextPage를 얻을 수 있도록.

2. 비슷한 구조의 코드 예제 (해결 자 포함)가 있습니까?

3. 어떤 그래프 채팅 (gitter, irc)이 있습니까?

답변

0

endCursor는 열 번째를 말합니다. 즉, 결과의 마지막 가장자리의 커서 필드와 같습니다.

  1. 일반적으로 커서 기반 페이지 매김은 양방향이 아닙니다. 따라서 hasNextPagehasPreviousPage을 알 수 없습니다. 하지만 어느 쿼리를 가져 오든 다른 쿼리에서이 쿼리를 발행 할 필요가 없으며 하나의 쿼리에서 가능한 한 많은 데이터를 가져 오는 것이 중요합니다.

  2. Relay의 페이지 매김에 대한 많은 예가있을 것입니다. 지금까지는 머리 꼭대기를 알지 못합니다.

  3. 아폴로와 GraphQL 자체에 대한 느슨한 팀이 있습니다. apollographql.slack.comgraphql.slack.com

+0

감사합니다. 나는 또한 나의 질문에 더 답하는 모범을 발견했다. https://github.com/nodkz/graphql-compose-connection/blob/master/src/connectionResolver.js –