delay.dev
02/08/2022, 1:01 PMGraphQL
+ `relay`를 사용하고 있습니다.
백엔드에서는 nestJS
+ typeorm
기준으로 resolver는 이렇게 생겨먹었습니다.
// 목록
@Query(() => [Post])
findAll() {
return ...
}
// 상세
@Query(() => Post)
findOne() {
return ...
}
그리고 클라이언트에서는 이런 식으로 데이터를 사용하고 있습니다.
# 게시물 목록 아이템
fragment postItemFragment on Post {
id
title
imageUrl
}
# 게시물 상세
fragment postDetailFragment on Post {
id
title
imageUrl
...
}
일반적으로 목록 아이템의 경우 필요한 데이터가 상세 컴포넌트보다 훨씬 적습니다. Post의 모든 프로퍼티를 쿼리하더라도 목록 아이템에서는 3개 밖에 쓰지 않습니다.
이러한 경우에 객체 스키마를 어떤 식으로 구성하시는지 궁금합니다. 여러 가지로 시도해보고 있는데, 의견 주시면 너무 좋을 것 같아요!
@ObjectType
export class PostListItem {
id
title
imageUrl
}
@ObjectType
export class PostDetail {
id
title
imageUrl
...
}
# 이렇게 변경
@Query(() => [PostListItem])
findAll() {
return ...
}
# 이렇게 변경
@Query(() => PostDetail)
findOne() {
return ...
}
Tony Won
Tony Won
delay.dev
02/08/2022, 1:08 PMHyeseong Kim
02/08/2022, 1:17 PMdelay.dev
02/08/2022, 1:25 PMHyeseong Kim
02/08/2022, 1:27 PMHyeseong Kim
02/08/2022, 1:28 PMHyeseong Kim
02/08/2022, 1:28 PMHyeseong Kim
02/08/2022, 1:29 PMHyeseong Kim
02/08/2022, 1:30 PMdelay.dev
02/08/2022, 1:34 PMHyeseong Kim
02/08/2022, 1:37 PMHyeseong Kim
02/08/2022, 1:37 PMdelay.dev
02/08/2022, 1:44 PMTony Won