Network/GraphQL

[GraphQL] 6. first, last 사용해 query의 필드가 반환하는 데이터 개수 제한하기

반응형

GraphQL query를 실행한 후 반환 데이터 조작

Query Language라면 GraphQL은 query의 반환 데이터를 조작하기 위한 다양한 방법을 제공한다. 이번 글에서는 이 중 개수를 제한하는 방법에 대해 알아볼 것이다.

 

이번글의 실습 예제는 아래 사이트에서 확인할 수 있다.

 

SWAPI GraphQL API

 

graphql.org

 

 

first, last를 활용해 데이터 개수 제한하기

앞선 글들에서 다중 데이터 조회 시 모든 데이터가 반환되었다. 예를 들어 아래와 같은 쿼리로 데이터를 조회하는 경우를 살펴보자.

query QueryFilms {
  allFilms{
    films {
      title
      director
    }
  }
}

 

이 쿼리를 실행하면 [그림1]과 같이 모든 영화정보에 대한 데이터가 반환된다.

 

그림1. 모든 영화 데이터 반환

 

이러한 데이터 중 일부 데이터만을 반환하기 위해서는 first나 last 키워드를 활용하면 이 중 일부 데이터만을 반환하도록 만들 수 있다. first 변수는 s가 붙은 필드 중 해당 변수를 넣은 수 있는 곳에 넣으면 된다. 

query QueryFilms {
  allFilms(first:[Data 개수 입력]) {
    films {
      title
      director
    }
  }
}

 

앞의 3개 데이터만을 반환하기 위해서는 [그림2]와 같이 first : 3 을 데이터 개수를 제한할 필드에 넣어 사용하면 된다.

 

그림2. first 3개 반환

 

뒤의 3개 데이터만을 반환하기 위해서는 [그림3]와 같이 last : 3 을 데이터 개수를 제한할 필드에 넣어 사용하면 된다.

 

그림3. last 3개 반환

 

 

한계점

이 first나  last는 모든 필드에서 사용할 수 있는 것이 아니다. 서버에서 구현해주어야 사용할 수 있는 것이다. first, last와 비슷하게 orderBy, search 등의 인자가 들어갈 수 있는 경우도 있다. 이 인자값들은 반환되는 데이터를 정렬하거나 검색하기 위해 사용된다. 하지만, 위의 사이트에서는 이 인자들을 지원하지 않는다. 스키마 정보를 확인해보면 allFilms는 after, first, before, last만을 인자로 받을 수 있음을 확인할 수 있다.

 

그림4. allFilms에서 받을 수 있는 인자

반응형

 

이 글의 저작권은 Kotlin World 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.