graphQL 쿼리 작성

송승찬·2020년 10월 18일
0

TIL

목록 보기
46/52

쿼리를 통해 데이터 가져오기

쿼리 - 클라이언트가 무슨 데이터가 필요한지 알려주는 객체와 비슷한 형식의 정보
클라이언트는 단 하나의 엔드포인트를 통해 데이터를 가져오고 이 구조는 클라이언트가 원하는 유연한 구조를 취할 수 있다.

기본적인 쿼리문

{
  allCities(쿼리문의 루트필드) {
  	 이곳에 쿼리문의 페이로드를 작성
     name(페이로드)
     age(페이로드)
  }
}

위의 쿼리문은 데이터베이스에 현재 저장된 모든 도시의 정보(이름/나이)을 반환합니다. 아래 코드는 응답예시

{
  "allCitiess": [
    { "name": "Seoul" , age:500 },
    { "name": "Suwon" , age:400},
    { "name": "Sung-nam", age:300 }
  ]
}

만약 위치정보도 요청하고 싶다면 쿼리의 payload를 수정해주면 된다

 allCities {
 	name
        age
        location
 }

GraphQL의 가장 큰 장점 중 하나는 중첩된 정보를 자연스럽게 질의할 수 있다는 점, 예를 들어 도시의 특산품 이름과 가격을 가져오고 싶다면 다음과 같이 쿼리를 구성할 수 있다.

{
  allCities {
  	name
        age
        uniqueItem {
        	name
                price
        }
    }
}

mutation으로 데이터 생성

서버에 정보를 요청하는 것 다음으로,어플리케이션은 현재 백엔드에 저장된 데이터를 수정할 방법을 필요로 하는데 이를 mutation이라하며 보통 다음과 같이 3종류가 있다.

Create: 새로운 데이터 생성
Update: 기존의 데이터 수정
Delete: 기존의 데이터 삭제

mutation은 쿼리문과 동일한 문법 구조를 가지지만, 반드시 mutation 키워드와 함께 시작해야 한다
아래에는 새로운 도시를 생성하는 쿼리를 의미

mutation {
  createCity {
    name
    age
  }
}
profile
superfly

0개의 댓글