# query
{
# id가 1000인 human을 찾는다.
human(id:'1000') {
name
# unit을 지정, METER or FOOT
height(unit:FOOT)
}
}
# 응답 데이터
{
"data" : {
"human" : {
"name" : "Luke Skywalker",
#METER= 1.72, FOOT=5.640..
"height" : 1.72
}
}
}
...
재사용 가능한 graphql을 묶는다. 변수로 저장해두는 것처럼~
반복되는 쿼리가 있을 경우 복잡해질때 사용할수 있다.
{
leftComparison: hero(episode: EMPIRE) {
...comparisonFields
}
rightComparison: hero(episode: JEDI) {
...comparisonFields
}
}
fragment comparisonFields on Character {
name
appearsIn
friends {
name
}
}
// query 다음에 이름을 지정해 구분하기 좋게 하자.
query HeroNameAndFriends {
hero {
name
friends {
name
}
}
}
mutation 뮤테이션도이름지정 {}
subscription 구독도이름지정 {}
대부분 인자는 동적이다. 때문에 입력받는 값을 인자로 넘기기위해 변수에 담아 사용한다.
$변수명
변수이름 앞에는 $
를 달면 변수로 인식한다.
# 변수 episode = "JEDI"
query HeroNameAndFriends($episode: Episode) {
hero(episode: $episode) {
name
friends {
name
}
}
}
query Hero($episode: Episode, $withFriends: Boolean!) {
hero(episode: $episode) {
name
friends @include(if: $withFriends) {
name
}
}
}
값이 true
참인 것만 결과에 포함된다.
만약 반대값을 가져오려면 @includ(if:값!)
?? 이렇게하나...