Düşünce Liderleri

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

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

Çok geçmeden yeni nesil, oyunlar arasında Fortnite lobisinde kripto para satın alıp yatırım fonu bakiyesini 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ı kullanıcılar/kişisel projeler, 2) birden fazla programlama dilinde 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 (MSFT ) gibi şirketler tarafından kullanılıyor ve en son olarak, Mart 2022’de Salesforce (CRM ) 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 tür sistemine sahip 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’in tek bir uç noktası vardır; REST API’nin ise birden fazla uç noktası bulunur. 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 kurmuştur.

Örneğin, Salesforce ile ilgili müşteri olayları verilerini bir müşteri portalına dahil etmek istiyorsak, bunu yapmak için en verimli yol, portaldan Salesforce GraphQL sunucusuna bir GraphQL sorgusu göndererek tam olarak gereken verileri istemektir. Tam olarak istediğiniz verileri alırsınız; gereğinden fazla veya az veri çekilmez 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 katı, önceden tanımlanmış raporlara güvenmek istemiyorum. Verilerime doğrudan bağlanıp onları esnek ve zamanında sorgulayabilmek istiyorum. İ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.

Maitland Fund Services bünyesinde RP PA analisti ve geliştiricisi olan Marcus Loveland, bilişim alanındaki okurlar için yazıyor. Uygulama programlama arayüzlerinin (API) geleceğine bakıyor ve özellikle GraphQL API mimarisine odaklanıyor.