Aracılığıyla paylaş


GraphQL uç noktalarını çağırma

Veri API oluşturucusu'ndaki (DAB) GraphQL uç noktaları, verileri hassas bir şekilde sorgulamanıza ve değiştirmenize olanak tanır. Her sorgu tam olarak hangi alanlara ihtiyacınız olduğunu bildirir ve sonuçları filtreleme, sıralama ve sayfalama için bağımsız değişkenleri destekler.

VARSAYıLAN olarak DAB, GraphQL uç noktasını şu konumda barındırmaktadır:

https://{base_url}/graphql

Yapılandırma aracılığıyla kullanıma sunulan varlıklar otomatik olarak GraphQL şemasına eklenir. Örneğin, books ve authors varlıklarınız varsa, her ikisi de şemada kök alanlar olarak görünür.

Uyarı

Şemayı ve otomatik tamamlama alanlarını keşfetmek için herhangi bir modern GraphQL istemcisini veya IDE'yi (Apollo, Uykusuzluk veya VS Code GraphQL gibi) kullanın.

Veri API'si oluşturucusunda desteklenen anahtar sözcükler

Konsept GraphQL Amaç
Projection items Hangi alanların döndürüleceğini seçin
Filtering filtre Koşula bağlı olarak satırları kısıtlama
Sıralama orderBy Sıralama düzenini tanımlama
Sayfa Boyutu first Sayfa başına öğeleri sınırlama
Devam sonra Son sayfadan devam et

Temel yapı

Her GraphQL sorgusu bir varlığı temsil eden bir kök alanla başlar.

{
  books {
    items {
      id
      title
      price
    }
  }
}

Sonuç, seçim kümenizle aynı şekle sahip bir JSON nesnesidir:

{
  "data": {
    "books": {
      "items": [
        { "id": 1, "title": "Dune", "price": 20 },
        { "id": 2, "title": "Foundation", "price": 18 }
      ]
    }
  }
}

Uyarı

Varsayılan olarak DAB, aksiruntime.pagination.default-page-size () yapılandırılmadığı sürece sorgu başına en fazla 100 öğe döndürür.

Sorgu türleri

Her varlık iki standart kök sorgu destekler:

Query Açıklama
entity_by_pk Birincil anahtarına göre bir kayıt döndürür
entities Filtrelerle eşleşen kayıtların listesini döndürür

Bir kayıt döndüren örnek:

{
  book_by_pk(id: 1010) {
    title
    year
  }
}

Birçok değer döndüren örnek:

{
  books {
    items {
      id
      title
    }
  }
}

Sonuçları filtreleme

Döndürülecek kayıtları kısıtlamak için filter bağımsız değişkenini kullanın.

{
  books(filter: { title: { contains: "Foundation" } }) {
    items { id title }
  }
}

Bu sorgu, başlığı "Foundation" olan tüm kitapları döndürür.

Filtreler karşılaştırmaları mantıksal işleçlerle birleştirebilir:

{
  authors(filter: {
    or: [
      { first_name: { eq: "Isaac" } }
      { last_name: { eq: "Asimov" } }
    ]
  }) {
    items { first_name last_name }
  }
}

Desteklenen işleçler olan eq, neq, lt, lte ve isNull için filtre bağımsız değişkeni başvurusuna bakın.

Sonuçları sıralama

orderBy bağımsız değişkeni kayıtların nasıl sıralanacağını tanımlar.

{
  books(orderBy: { year: DESC, title: ASC }) {
    items { id title year }
  }
}

Bu, önce azalan düzende year ile ve ardından title ile sıralanmış kitapları geri döndürür.

Daha fazla ayrıntı için orderBy argümanına referans bakın.

Sonuçları sınırlama

Argüman, first tek bir istekte kaç kaydın döndürüleceğini sınırlandırır.

{
  books(first: 5) {
    items { id title }
  }
}

Bu, varsayılan olarak birincil anahtara göre sıralanmış ilk beş kitabı döndürür. Yapılandırılan en büyük sayfa boyutunu istemek için de kullanabilirsiniz first: -1 .

İlk bağımsız değişken referansında daha fazla bilgi edinin.

Devam eden sonuçlar

Sonraki sayfayı getirmek için, önceki sorgudaki imleçle after bağımsız değişkenini kullanın.

{
  books(first: 5, after: "eyJpZCI6NX0=") {
    items { id title }
  }
}

Belirteç, after önceki sayfanın sona erdiği yeri işaretler. Daha fazla ayrıntı için bkz. bağımsız değişken başvurusu sonrası .

Alan seçimi (projeksiyon)

GraphQL'de yanıtta tam olarak hangi alanların görüneceğini seçersiniz. SELECT * gibi bir joker karakter yoktur. Yalnızca ihtiyacınız olanı isteyin.

{
  books {
    items { id title price }
  }
}

Yanıttaki alanları yeniden adlandırmak için diğer adları da kullanabilirsiniz:

{
  books {
    items {
      bookTitle: title
      cost: price
    }
  }
}

Ayrıntılar için Bakınız, alan projeksiyonu referansı.