GraphQL Nedir?

İngilizce: GraphQL

GraphQL, istemcinin ihtiyaç duyduğu alanları tek sorguda seçmesini sağlayan şema tabanlı API sorgu ve çalışma zamanıdır.

GraphQL Nedir?

GraphQL, API istemcisinin hangi alanları istediğini açıkça yazabildiği bir sorgu dili ve çalışma zamanıdır. REST’te çoğu zaman farklı kaynak URL’lerinden veri toplanırken GraphQL’de tek endpoint’e şemaya uygun sorgu gönderilir.

Örneğin bir ürün detay ekranı yalnızca ürün adı, fiyat, stok ve ilk üç yorumu istiyorsa sorgu bu alanları belirtir. Sunucu da şemadaki resolver’lar üzerinden sadece bu alanları döndürür.

Nasıl Çalışır?

GraphQL API’si önce tipleri, sorguları, mutasyonları ve abonelikleri tanımlayan bir şema yayımlar. İstemci bu şemaya uygun sorgu gönderir; sunucu sorguyu doğrular, resolver fonksiyonlarıyla veriyi toplar ve JSON yanıt döndürür.

Temel işlem türleri şunlardır:

  • Query: Veri okuma
  • Mutation: Veri oluşturma, güncelleme veya silme
  • Subscription: Olayları gerçek zamanlı dinleme

İş Dünyasında Kullanımı

GraphQL, mobil uygulama, panel, müşteri portalı ve üçüncü taraf entegrasyonların aynı veri modelini farklı şekillerde tükettiği projelerde kullanışlıdır. İstemci gereksiz alanları çekmediği için karmaşık ekranlarda ağ trafiği daha kontrollü olabilir.

Yine de GraphQL her zaman REST API yerine geçmez. Dosya indirme, basit CRUD ve cache dostu kaynak yapılarında REST daha sade kalabilir. İyi tasarlanmış bir API için GraphQL tarafında yetkilendirme, sorgu karmaşıklığı limiti ve gözlemlenebilirlik özellikle önemlidir.