필드
GraphQL
에서는 얻고싶은 객체명과 해당 객체로부터 얻고싶은 특정 필드들을 명시함으로써 원하는 값들만 얻을 수 있다.
쿼리 예시
단축 문법 활용 예시
우선은 가장 쉽게 해볼 수 있는 쿼리로, 단축 문법으로 쿼리를 보내보자.
query
타입과 작업이름을 명시하지 않고 단순히 json 형태로 쿼리 요청을 할 수 있다.{ hero { name } }
{ "data": { "hero": { "name": "R2-D2" } } }
객체의 특정 프롭만 받기도 가능!
{ hero { name # 쿼리에 주석을 쓸 수도 있습니다! friends { name } } }
friends는 객체 배열을 반환하는데, 나는 객체의 name 속성만 궁금하다고 쿼리를 보내는 것임.
따라서 서버에서는 friends의 전체 값을 받아온 뒤, name 속성만 필터링해서 클라이언트에는 name 속성만 포함시켜서 반환해줌으로써, 클라이언트는 진짜 본인이 필요한 값들만 받아 볼 수 있다.
{ "data": { "hero": { "name": "R2-D2", "friends": [ { "name": "Luke Skywalker" }, { "name": "Han Solo" }, { "name": "Leia Organa" } ] } } }
query 타입, 작업이름 명시
- 작업 타입은
query
, mutation
, subscription
이 될 수 있다.
- 작업 이름은 의미있고 명시적으로 작성하는 것이 좋으며, 서버 측에서 로깅에 매우 유용하다.query HeroNameAndFriends { hero { name friends { name } } }
{ "data": { "hero": { "name": "R2-D2", "friends": [ { "name": "Luke Skywalker" }, { "name": "Han Solo" }, { "name": "Leia Organa" } ] } } }