Pustaka queries
Pustaka queriesFilter data dari API eksternal

Filter data dari API eksternal

Jika kita perlu mengambil data dari API eksternal, tetapi hanya membutuhkan hasil yang memenuhi kondisi tertentu (seperti memiliki field dengan nilai tidak kosong), dan API tersebut tidak mendukung pemfilteran, kita dapat menggunakan Gato GraphQL untuk mengimplementasikan API gateway yang menghapus entri yang tidak memenuhi kondisi tersebut.

Sebagai contoh, saat memanggil endpoint REST API /users dari suatu situs WordPress, kita dapat memfilter pengguna yang memiliki field url kosong:

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
}