Logo

Özellik:

Şema Fonksiyonları

Şema Fonksiyonları

GraphQL şeması, PHP programlama dilinin işlevselliklerini ortaya çıkaran alanlar ve direktiflerle donatılmıştır.

Fonksiyon Alanları

Fonksiyon alanları Global Alanlardır ve bu nedenle GraphQL şemasındaki her türe eklenir: QueryRoot'a, aynı zamanda Post, User vb. türlere de.

Fonksiyon alanları, veriler alındıktan sonra işlenmesi için kullanışlıdır; bir alan değerini istenen herhangi bir şekilde dönüştürmemize ve güçlü veri içe/dışa aktarma yetenekleri kazanmamıza olanak tanır.

Örneğin, bir Post.hasComments alanına sahipken, karşıt değere ihtiyaç duyabiliriz. PHP kodu düzenlememizi gerektiren yeni bir Post.notHasComments alanı oluşturmak yerine, Field to Input özelliğini kullanarak hasComments değerini bir not alanına giriş olarak verebilir ve böylece GraphQL query'sinin içinde her zaman yeni değeri hesaplayabiliriz:

query {
  posts {
    id
    hasComments
    notHasComments: _not(value: $__hasComments)
  }
}

Fonksiyon Direktifleri

GraphQL şeması, programlama dillerinde (PHP gibi) yaygın olarak bulunan işlevsellikleri ortaya çıkaran direktiflerle donatılmıştır.

Direktif alanları, veriler alındıktan sonra işlenmesi için kullanışlıdır; bir alan değerini istenen herhangi bir şekilde dönüştürmemize ve güçlü veri içe/dışa aktarma yetenekleri kazanmamıza olanak tanır.

Örneğin, bu query:

query {
  posts {
    title @strUpperCase
  }
}

...şu yanıtı üretecektir:

{
  "data": {
    "posts": [
      {
        "title": "HELLO WORLD!"
      },
      {
        "title": "LOVELY WEATHER"
      }
    ]
  }
}

Yardımcı Alanlar

GraphQL şemasına yaygın olarak kullanılan yardımcı işlevsellikleri sağlayan alanlar eklenir.

Yardımcı alanlar Global Alanlardır ve bu nedenle GraphQL şemasındaki her türe eklenir: QueryRoot'a, aynı zamanda Post, User vb. türlere de.

Bu query'de, web sitesindeki kullanıcıların ID'lerini alıyoruz ve ID'lerini parametre olarak geçirerek yeni bir GraphQL query'si çalıştırıyoruz:

query {
  users {
    userID: id
    url: _urlAddParams(
      url: "https://somewebsite/endpoint/user-data",
      params: {
        userID: $__userID
      }
    )
    headers: _httpRequestHeaders
    headerNameValueEntryList: _objectConvertToNameValueEntryList(
      object: $__headers
    )
    _sendHTTPRequest(input: {
      url: $__url
      options: {
        headers: $__headerNameValueEntryList
      }
    }) {
      statusCode
      contentType
      body
    }
  }
}

Ortam Alanları

GraphQL şeması, bir ortam değişkeninden veya bir PHP sabitinden (en yaygın olarak wp-config.php'de tanımlanan, ancak başka yerlerde de tanımlanabilen) değer elde etmeye olanak tanıyan global _env alanıyla donatılmıştır.

Bu query, GitHub'daki özel bir depoya erişmek için ayarlayabileceğimiz GITHUB_ACCESS_TOKEN ortam sabitini alır:

query {
  githubAccessToken: _env(name: "GITHUB_ACCESS_TOKEN")
}

Bültenimize abone olun

Gato GraphQL'deki tüm güncellemelerden haberdar olun.