GraphQL query를 실행한 후 반환 데이터 조작
Query Language라면 GraphQL은 query의 반환 데이터를 조작하기 위한 다양한 방법을 제공한다. 이번 글에서는 이 중 개수를 제한하는 방법에 대해 알아볼 것이다.
이번글의 실습 예제는 아래 사이트에서 확인할 수 있다.
first, last를 활용해 데이터 개수 제한하기
앞선 글들에서 다중 데이터 조회 시 모든 데이터가 반환되었다. 예를 들어 아래와 같은 쿼리로 데이터를 조회하는 경우를 살펴보자.
query QueryFilms {
allFilms{
films {
title
director
}
}
}
이 쿼리를 실행하면 [그림1]과 같이 모든 영화정보에 대한 데이터가 반환된다.
이러한 데이터 중 일부 데이터만을 반환하기 위해서는 first나 last 키워드를 활용하면 이 중 일부 데이터만을 반환하도록 만들 수 있다. first 변수는 s가 붙은 필드 중 해당 변수를 넣은 수 있는 곳에 넣으면 된다.
query QueryFilms {
allFilms(first:[Data 개수 입력]) {
films {
title
director
}
}
}
앞의 3개 데이터만을 반환하기 위해서는 [그림2]와 같이 first : 3 을 데이터 개수를 제한할 필드에 넣어 사용하면 된다.
뒤의 3개 데이터만을 반환하기 위해서는 [그림3]와 같이 last : 3 을 데이터 개수를 제한할 필드에 넣어 사용하면 된다.
한계점
이 first나 last는 모든 필드에서 사용할 수 있는 것이 아니다. 서버에서 구현해주어야 사용할 수 있는 것이다. first, last와 비슷하게 orderBy, search 등의 인자가 들어갈 수 있는 경우도 있다. 이 인자값들은 반환되는 데이터를 정렬하거나 검색하기 위해 사용된다. 하지만, 위의 사이트에서는 이 인자들을 지원하지 않는다. 스키마 정보를 확인해보면 allFilms는 after, first, before, last만을 인자로 받을 수 있음을 확인할 수 있다.