GraphQL Sorgu Oluşturucu

GraphQL operasyonunu elle yazmak, süslü parantezleri, argümanları ve girintileri düzenli tutmayı gerektirir. Bu oluşturucu belgeyi sizin için bir araya getirir: sorgu, mutasyon veya abonelik seçin, operasyona ad verin, kök alanı belirleyin, argüman ekleyin ve ihtiyacınız olan alanları listeleyin. Sonuç, doğrudan Apollo, urql veya GraphiQL’e yapıştırabileceğiniz biçimlendirilmiş bir operasyondur.

GraphQL operasyonu nasıl oluşturulur?

  1. 1

    Operasyon türünü seçin

    Açılır listeden sorgu, mutasyon veya abonelik seçin. Bu, sunucunun çalıştıracağı operasyon türünü belirler.

  2. 2

    Operasyona ad verin

    Sunucunun operasyonu kaydedip önbelleğe alabilmesi için GetUser gibi bir ad verin. Ad isteğe bağlıdır; oluşturucu adsız da çalışır.

  3. 3

    Kök alanı belirleyin

    Çağırmak istediğiniz alanı yazın, örneğin user, createPost veya orderUpdated.

  4. 4

    Argüman ekleyin

    id: "123" veya id: $id gibi anahtar-değer çiftleri ekleyin. Anahtarı boş olan satırlar atlanır.

  5. 5

    Alanları listeleyin ve kopyalayın

    Her satıra bir alan yazın, sorguyu oluşturun ve biçimlendirilmiş belgeyi panoya kopyalayın.

GraphQL belgeleriyle çalışmak

Bir GraphQL belgesi, bir veya daha fazla işlem ile bu işlemlerin referans ettiği tüm parçaların bir araya gelmesinden oluşur. Her işlem, Query, Mutation veya Subscription türünden bir kök alanını belirtir ve sunucu istenen seçim kümesini çözer. Oluşturucu operasyon metnini sizin için yazar, ancak şemanızı bilmez; bu yüzden operasyonu çalıştırmadan önce her alan ve argüman adını API’nizle karşılaştırın.

Operasyonun yapısı

Bölüm Amacı Örnek
Operasyon türü Sorgu, mutasyon veya abonelik query, mutation, subscription
Operasyon adı Önbelleğe alma ve günlükler için kullanılır GetUserById
Argümanlar Kök alana iletilen değerler user(id: "123")
Seçim kümesi Alanlar ve iç içe seçmeler { user(id: "123") { name posts { title } } }
Değişkenler Operasyon adıyla birlikte bildirilen tipli girdiler query GetUser($id: ID!) { user(id: $id) { name } }

Sık yapılan hatalar

  • Zorunlu değişkenler ! ile biter. Şemada NonNull olarak işaretlenen argümanlarda bunu unutmak, çözücü çalışmadan önce doğrulama hatasına yol açar.
  • Metin argümanları tırnak gerektirir. 123 gibi bir değer sayıdır; metin değeri argüman satırında çift tırnakla "123" biçiminde yazılmalıdır.
  • Birleşim ve arayüz türleri, türe özgü alanları okumak için ... on TypeName içsel parçalarını gerektirir.
  • Takma ad (alias), aynı alanı farklı argümanlarla iki kez istediğinizde zorunludur; örneğin today: stats(period: DAY) ve week: stats(period: WEEK).
  • Bağlantılar (Relay spesifikasyonu) edges { node { ... } } ve pageInfo { endCursor hasNextPage } alanlarını açar; ikisinden birini atlamak sayfalamayı bozar.

İpuçları

  • Apollo Client’in operasyonları ayrı ayrı önbelleğe alabilmesi için operasyonları küçük tutun ve adlandırın.
  • Değişen değerleri değişmezler yerine değişken olarak iletin; böylece sunucu belgeyi bir kez ayrıştırıp yeniden kullanır. Değişkenleri operasyon adının yanında bildirin, örneğin query GetUser($id: ID!).
  • Bir alan birden çok argüman gerektiriyorsa bunları tek bir argüman satırına virgülle ayırarak yazın, örneğin değer olarak filter: { status: ACTIVE }.
  • Oluşturucu, yapılandırdığınız metni aynen üretir. Bir operasyon başarısız olursa önce alan adlarınızı güncel şemayla karşılaştırın.

Sık Sorulan Sorular

Hayır. Yalnızca girdiğiniz metni biçimlendirir; çağrılacak bir uç nokta yoktur ve şema gerekmez. Operasyonun bölümlerini doldurun, oluşturucu belgeyi sizin için bir araya getirsin.

Evet. Operasyon açılır listesinden sorgu, mutasyon ve abonelik arasında geçiş yapabilirsiniz. Geri kalan her şey aynı çalışır: ad, kök alan, argümanlar ve alanlar.

Argüman bölümüne satırlar ekleyin. Anahtar, argüman adıdır; değer de ilettiğiniz şeydir, örneğin id: “123” veya id: $id. Anahtarı boş olan satırlar yok sayılır. $id gibi bir değişken yazdıysanız, kendiniz operasyon adının yanında bildirin, örneğin query GetUser($id: ID!).

Oluşturucu, yazdığınız metni aynen üretir. Bu hata genellikle bir alan veya argüman adının sunucu şemanızla eşleşmediği anlamına gelir: kök alanı ve her alan adını API’nizle karşılaştırın ve yazımı düzeltin.

İlgili Araçlar

Araç diğer dillerde mevcuttur