Slackbot
07/14/2022, 8:51 AMbumkeyy
07/14/2022, 8:52 AMtype Book {
name : String
}
type User {
books : [Book]
}
type Place {
owner: User
}
type query {
user(id:ID):User
place(id:ID):Place
}
{
user(id:"1") { // <- user api를 호출해서 {books : [{id:1, name:'1번 책', report: true}, {id:2, name:'2번 책', report : false}]}
books { // <- book.report 값이 true 인 것만 보여줘야 함
name
}
}
}
{
place(id:"1") { // 장소 api 호출해서 user 정보 획득
owner { // <- user api를 호출해서 {books : [{id:1, name:'1번 책', report: true}, {id:2, name:'2번 책', report : false}]}
books { // <- book.report 값이 true 인 것만 보여줘야 함
name
}
}
}
bumkeyy
07/14/2022, 8:53 AMreport
값은 클라이언트 입장에서 필요 없기 때문에 스키마에 넣지 않았을 경우입니다.bumkeyy
07/14/2022, 8:53 AMuser
필드 리졸버와 owner
필드 리졸버에서 report
값을 통해 books
정보를 필터링해서 리턴
2. User
타입의 books
필드 리졸버에서 유저 조회 api를 호출해서 report
값을 획득 후 필터링해서 리턴
3. report
를 스키마에 추가 후 Parent
타입에서 접근, 없으면 api 호출
위 세 가지 방법이 있는 것 같은데 graphql 릴레이션 관점에서는 2번이 더 맞아보여서요… 다들 어떠신가요?bumkeyy
07/14/2022, 8:56 AMXiNiHa
07/14/2022, 9:57 AM