GraphQL #3 Query

eunji hwang·2020년 5월 13일
0

GraphQL

목록 보기
3/3

Qeury

인자

# 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
    }
  }
}

@includ(if: 값)

값이 true참인 것만 결과에 포함된다.
만약 반대값을 가져오려면 @includ(if:값!) ?? 이렇게하나...

@skip(if: 값)

profile
TIL 기록 블로그 :: 문제가 있는 글엔 댓글 부탁드려요!

0개의 댓글