İçeriğe Geç

GraphQL Nedir?

GraphQL, istemcinin bir API’den hangi alanları istediğini sorguda tek tek belirttiği, sunucunun da türlerle tanımlanmış şemaya göre yalnızca istenen veriyi döndürdüğü bir API sorgu dilidir.

Diğer Adları: GraphQL API

GraphQL Nasıl Çalışır?

GraphQL’de sunucu, verinin biçimini türlerle tanımlayan bir şema yayımlar. İstemci bir sorgu yazarak ihtiyaç duyduğu alanları, değişkenleri ve parçaları seçer; yanıt sorgunun yapısıyla aynı biçimde ve yalnızca istenen alanlarla gelir. Veri okumak için sorgu (query), kayıt eklemek, güncellemek ya da silmek için değişiklik (mutation), gerçek zamanlı veri için abonelik (subscription) kullanılır.

GraphQL ile REST API Farkı

REST API’lerde veri çoğunlukla kaynak başına ayrı adreslerden alınır ve yanıtın alanlarını sunucu belirler; ihtiyaçtan fazla alan gelebilir ya da bir ekran için birkaç ayrı istek gerekebilir. GraphQL’de istemci aynı istekte ilişkili verileri ve yalnızca gereken alanları seçebilir.

Buna karşılık sorgunun yükü seçilen alanlara ve iç içe bağlantılara göre değişir; sağlayıcılar sorgulara sınır koyar. Shopify’ın toplu sorgularında örneğin bir sorguda en çok beş bağlantı ve iki düzey iç içe bağlantı bulunabilir.

GraphQL E-Ticaret Entegrasyonunda Nerede Kullanılır?

Shopify’ın GraphQL yönetim API’si (GraphQL Admin API) ürün, sipariş ve stok verisinin okunup yazıldığı API’dir. Büyük bir kataloğun tamamını almak için sayfa sayfa sorgu yerine toplu işlem (bulk operation) kullanılır: sorgu sunucuda arka planda çalışır ve sonuç, her satırı ayrı bir JSON nesnesi olan JSONL dosyası olarak indirilir.

Örnek: Bir entegrasyon, pazaryerine aktarım için ürünlerin yalnızca stok kodu, barkod, fiyat ve stok adedi alanlarını ister. Açıklama ve görsel gibi büyük alanlar sorguya yazılmadığı için yanıt küçük kalır ve aktarım daha az veriyle tamamlanır.

GraphQL Hakkında Sık Sorulan Sorular

GraphQL bir veritabanı mı?

Değildir. GraphQL istemci ile sunucu arasındaki API sorgu dilidir; verinin arka planda hangi veritabanında tutulduğundan bağımsızdır.

GraphQL kullanmak için REST API’den vazgeçmek gerekir mi?

Gerekmez. Birçok sağlayıcı iki yöntemi bir arada sunar; hangisinin kullanılacağı sağlayıcının desteğine ve entegrasyonun ihtiyacına göre seçilir.

GraphQL API’leri sürüm değiştirir mi?

GraphQL’in öğretici sayfası, dilin sürümsüz API’lere imkân verdiğini belirtir. Buna karşın Shopify gibi sağlayıcılar GraphQL API’lerini de tarihli sürümlerle yayımlar; entegrasyon sağlayıcının sürüm takvimini izler.