쿼리 라이브러리
쿼리 라이브러리외부 API에서 데이터 필터링하기

외부 API에서 데이터 필터링하기

외부 API에서 데이터를 가져와야 하지만 특정 조건을 만족하는 결과(예: 필드가 비어 있지 않은 값을 가지는 경우)만 필요하고, API가 필터링을 지원하지 않는 경우, Gato GraphQL을 사용하여 조건을 만족하지 않는 항목을 제거하는 API 게이트웨이를 구현할 수 있습니다.

예를 들어, 어떤 WordPress 사이트의 REST API 엔드포인트 /users를 호출할 때, url 필드가 비어 있는 사용자를 제외할 수 있습니다:

query FilterDataFromWordPressAPI(
  # eg: https://somesite.com/wp-json/wp/v2/users/?_fields=id,name,url
  $endpointURL: URL!
) {
  usersWithWebsiteURL: _sendJSONObjectCollectionHTTPRequest(
    input: {
      url: $endpointURL
    }
  )
    # Remove users without a website URL
    @underEachArrayItem(
      passValueOnwardsAs: "userDataEntry"
      affectDirectivesUnderPos: [1, 2, 3]
    )
      @applyField(
        name: "_objectProperty"
        arguments: {
          object: $userDataEntry
          by: {
            key: "url"
          }
        }
        passOnwardsAs: "websiteURL"
      )
      @applyField(
        name: "_isEmpty"
        arguments: {
          value: $websiteURL
        }
        passOnwardsAs: "isWebsiteURLEmpty"
      )
      @if(
        condition: $isWebsiteURLEmpty
      )
        @setNull
    @arrayFilter
}