Queries Kütüphanesi
Queries KütüphanesiHarici bir API'den veri filtreleme

Harici bir API'den veri filtreleme

Harici bir API'den veri almamız gerektiğinde, ancak yalnızca belirli bir koşulu karşılayan sonuçlara ihtiyaç duyduğumuzda (örneğin boş olmayan bir değere sahip bir alan gibi) ve API filtrelemeyi desteklemiyorsa, koşulumuzu sağlamayan girdileri kaldıran bir API ağ geçidi uygulamak için Gato GraphQL'i kullanabiliriz.

Örneğin, bir WordPress sitesinin /users REST API endpoint'ini çağırırken, url alanı boş olan kullanıcıları filtreleyebiliriz:

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
}