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.
İlgili Terimler
API, farklı yazılımların izin verilen veri ve işlemlere standart istekler üzerinden erişmesini sağlayan sözleşmeli arayüzdür.
GraphQL FederationGraphQL Federation, bağımsız ekiplerin şemalarını birleştirerek tek GraphQL supergraph sunmasını sağlayan mimaridir.
GraphQL SchemaGraphQL şeması, API'deki tipleri, sorguları, mutasyonları ve alan ilişkilerini tanımlayan sözleşme katmanıdır.
GraphQL SubscriptionGraphQL Subscription, sunucudaki olayları bağlantı açıkken istemciye gerçek zamanlı ileten GraphQL işlem türüdür.
gRPCgRPC, servisler arası hızlı ve tip güvenli iletişim için Protocol Buffers ve HTTP/2 kullanan RPC framework'üdür.
REST APIREST API, HTTP yöntemleriyle kaynakları okuma ve değiştirme üzerine kurulu, entegrasyonlarda yaygın kullanılan web servis tasarımıdır.
StrapiStrapi, içerik modellerinden otomatik API üreten, kendi sunucunuzda barındırılabilen açık kaynaklı bir headless CMS platformudur.
tRPCtRPC, TypeScript uygulamalarında ayrı API şeması üretmeden sunucu prosedürlerinin istemciye uçtan uca tip güvenli taşınmasını sağlar.