Jerry
02/14/2022, 9:58 AMHyeseong Kim
02/14/2022, 10:03 AMJerry
02/14/2022, 10:46 AMquery {
usersConnection {
edges {
node {
id
}
cursor
}
pageInfo {
startCursor
endCursor
}
}
}
root field에서는 차라리 이런 네이밍이 더 자연스럽게 느껴집니다.
query {
usersWithCursor {
users {
id
}
cursor
}
}
오 예시 쿼리를 써보니 생각났는데요, 그래도 root field에서만 connection을 안 쓰는 건 안 좋은 것 같습니다. 그래서 질문을 다른 식으로 하자면 “root field에서 connection의 네이밍을 어떻게 하면 좋을까요?“가 되는 것 같습니다.Tony Won
query {
users(first: 5) {
edges {
node {
id
}
}
pageInfo {
startCursor
endCursor
}
}
}
이렇게 쓰는거 같아요 ㅎㅎTony Won
cursor-based pagination을 구현하는 방식이라는 측면에서 시맨틱한 의미는 신경 쓰지 말고 그냥 connection 방식을 사용해도 될까요?어차피 relay 쓰려면
@connection
directive를 쓰긴해서 ㅎㅎ 이름을 바꾸거나 해서 시맨틱한 의미를 바꾼달지 하기는 힘들거같네요.
혹시 클라이언트는 뭐 쓰세요??Jerry
02/14/2022, 1:55 PMquery {
user {
friendsConnection {
friendsEdges {
node {
id
}
}
pageInfo {
startCursor
}
}
}
}
apollo blog에서 ${origin}${relationship}Connection
이라는 네이밍 컨밴션을 소개시켜주었는데 의미를 이해하게 되어서 저는 이렇게 쓰려고 했었거든요Tony Won
Tony Won
Jerry
02/15/2022, 2:13 AMtype Query {
userConnection: UserConnection
user: User
}
type UserConnection {
userEdges: [UserEdge]
pageInfo: PageInfo
}
type UserEdge {
node: User
cursor: String
}
interface Node {
id: ID!
}
type User implements Node {
id: ID!
friendConnection: UserFriendConnection
}
type UserFriendConnection {
friendEdges: [UserFriendEdge]
pageInfo: PageInfo
}
type UserFriendEdge {
node: User
cursor: String
}
query {
userConnection {
userEdges {
node {
id
}
cursor
}
pageInfo {
startCursor
endCursor
}
}
}
query {
user {
id
friendConnection {
friendEdges {
node {
id
}
cursor
}
pageInfo {
startCursor
endCursor
}
}
}
}
root field에 connection postfix가 어색했었는데 애플리케이션이 user라는 관계로 데이터를 가지고 있다고 생각하려구요. 그래프 구조로 생각한다면 아래 그림처럼 가상의 z축을 가정하는 약간의 정신승리를 해봤습니다.😅Tony Won
userEdges
이렇게 해도 relay에서 usePaginationFragment
잘 돌아가는지 궁금하네요 ㅋㅋ 저는 항상 edges
필드를 썼었어요.Hyeseong Kim
02/15/2022, 2:46 AMHyeseong Kim
02/15/2022, 2:46 AMHyeseong Kim
02/15/2022, 2:47 AMJerry
02/15/2022, 2:57 AM요부분은 제가 아직 경험이 부족해서 전혀 생각을 못했습니다. 혹시 안된다면 잘 돌아가는 데에 맞추긴 해야겠네요 apollo 블로그에서는 말씀주신 대로 복수형을 써서 설명해주더라구요. 근데 github api는 단수형을 써서 저도 그거를 따라해봤어요ㅎㅎ이렇게 해도 relay에서userEdges
잘 돌아가는지 궁금하네요 ㅋㅋ 저는 항상usePaginationFragment
필드를 썼었어요.edges
Tony Won