Düşünce Liderleri
GraphQL – Uygulamaların İletişim Şeklini Değiştiren ve İyileştiren

Ertesi nesil, kripto para birimini satın alacak ve Fortnite lobisinde oyunlar arasında birim güvenliği dengesini kontrol edecek. Bu, birçok teknolojik ilerleme sayesinde mümkün olacak.
Bugün tartıştığımız şey, uygulamalar ve onlara sahip olan şirketler arasında veri aktarımıdır (okuma, güncelleme, ekleme/kaldırma). Uygulama programlama arayüzleri (API), bu veri iletişiminin tanımlanmasını sağlayan mimaridir ve bu standartlar geliştikçe, işleme gereksinimleri ve veri depolama gereksinimleri daha az zahmetli hale gelmiştir.
Pakette “hafif” kaynak kullanımı açısından lider, açık kaynaklı bir veri sorgulama ve manipülasyon dili olan GraphQL’dir. Ekosisteminin temeli, spesifikasyonu ve etrafında oluşturulmuş bir dizi araçtır.
Yeni değil – zaman hızlı geçiyor. Facebook tarafından 2012 yılında geliştirilmiş ve yalnızca dahili olarak mobil uygulama geliştirme için kullanılmıştır. 2015 yılında “açık kaynak” haline getirilmiş ve bugün GraphQL Vakfı (https://graphql.org/foundation/) tarafından yönetiliyor ve daha da geliştiriliyor.
Neden şimdi hakkında yazıyorum? Tipik bir teknoloji benimseme yol haritası, aşağıdaki adımları takip eder: 1) hobi amaçlı/personal projeler, 2) çoklu dillerde uygulama, 3) start-up’lar ve küçük şirketlerde uygulamalar, 4) orta ölçekli şirketler ve ürün geliştirme, 5) büyük şirketler ve teknoloji devleri.
GraphQL, 5. seviyeye ulaştı. Şu anda GitHub, Pinterest, Shopify, Microsoft gibi şirketler tarafından kullanılıyor ve en son olarak, Mart 2022’de Salesforce tarafından da benimsendi.
Salesforce’den daha verimli bir şekilde veri almak için bir yol ararken, GraphQL belgelerine rastladım ve okumaya ve uygulamaya başladım.
Nasıl geleneksel bir REST API’den farklıdır?
- Bir avantajı, GraphQL ile yalnızca istediğiniz verileri sorgulayabilir ve yalnızca o verileri alabilirsiniz. Bir müşteri olayı ile ilgili yalnızca iki alanı istiyorsanız, yalnızca onlar gelir. Geleneksel bir REST API, olayla ilgili tüm alanları size geri gönderecektir. Bu, 100’den fazla alan olabilir. Şimdi, istemediğiniz tüm bu verileri işlemeniz gerekir. Bu, veri fazlalığı (az veri de bir sorun olabilir) olarak bilinir.
- Yukarıdakiler, GraphQL’in diğer API yöntemlerine kıyasla veri döndürürken daha hızlı olmasını sağlar.
- GraphQL, güçlü bir şekilde yazılmış bir dildir ve bu, kod hatalarının program çalışmadan önce tespit edilmesini sağlar.
- GraphQL etrafında harika araçlar geliştirilmiştir ve bu, geliştiriciler için çok dostane hale getirmiştir.
- GraphQL, REST API’nin çoğuna kıyasla tek bir son noktası vardır. Bu, tüm verilerinizi tek bir istekle alabileceğiniz anlamına gelir.
Madalyonun iki yüzü: istek sahibi (istemci) ve sağlayıcı (GraphQL sunucusu)
Şimdiye kadar GraphQL’i veri “istek” açısından ele aldım. Salesforce veya Microsoft gibi şirketler, verilerinizi sorgulamak ve değiştirmek (okuma, güncelleme, ekleme) için bir GraphQL API’si kurabilir.
Örneğin, Salesforce ile ilgili müşteri olayları verilerini bir müşteri portalına dahil etmek istiyorsak, bunu yapmak için en verimli yol, portal aracılığıyla Salesforce GraphQL sunucusunaexact veri isteğinde bulunmaktır. İsteğinizin tam olarak ne istediğinizi alırsınız, fazla veya eksik नहin ve bu nedenle ek işleme veya veri depolamaya gerek kalmaz.
Madalyonun diğer yüzü, müşterilerin istedikleri verilere erişebilecekleri verimli bir yöntemi oluşturan kuruluştur.
GraphQL API’sini oluştururken, bir kuruluş tüm sistemlerini bir modele entegre eden bir model oluşturur. Bu sistemleri birleştirir ve bir kez yapıldığında, altta yatan sistemin karmaşıklığını ortadan kaldırır. Çalışma tamamlandıktan sonra, API aracılığıyla veri sorgulama işlemi sorunsuz hale gelir.
Uygulamaları veya sağlayıcıları karşılaştırdığımda, bana veri geri alma için hangi işlevleri sunduklarına bakarım. Onlara e-posta göndermek veya esnek, zamanında bir şekilde veri sorgulayabilmem için katı önceden tanımlanmış raporlara güvenmek istemiyorum. İki uygulama/sağlayıcı benzer diğer karşılaştırma noktalarında benzer ise ve biri REST API veya GraphQL API sunuyorsa, kesinlikle API sunanını seçeceğim.












