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

Bir sonraki neslin kripto para satın alması ve Fortnite lobisinde oyunlar arasında birim güven balance’ini kontrol etmesi uzun sürmeyecek. Bu, birçok teknolojik ilerleme sayesinde mümkün olacak.
Bugün tartıştığımız şey, uygulamalar ve bunları sahip olan şirketler arasında veri aktarım şekli (okuma, güncelleme, ekleme/silme). Uygulama programlama arayüzleri (API), bu veri iletişimini tanımlayan mimaridir ve bu standartlar geliştikçe, işleme gereksinimleri ve veri depolama gereksinimleri daha az zahmetli hale gelmiştir.
“Lightweight” kaynak kullanımı açısından lider olan Graphql, açık kaynaklı bir veri sorgulama ve manipülasyon dilidir. Ekosisteminin temeli, spécifikasyonu ve etrafında oluşturulan 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 Foundation (https://graphql.org/foundation/) tarafından yönetiliyor ve daha fazla geliştirilmesi denetleniyor.
Neden şimdi hakkında yazıyorum? Tipik bir teknolojik 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 veri daha verimli bir şekilde almak için bir yol ararken, GraphQL belgelerine rastladım ve okumaya ve uygulamaya began.
Nasıl geleneksel bir REST API’den farklıdır?
- Birincil avantajlarından biri, GraphQL ile yalnızca istenen verilerin sorgulanması ve yalnızca bu verilerin geri dönmesidir. Bir müşteri olayı ile ilgili yalnızca iki alanı istiyorsanız, yalnızca bunları alırsınız. Geleneksel bir REST API, olayla ilgili TÜM alanları size geri döndürecektir. Bu, 100+ alan olabilir. Şimdi, istemediğiniz tüm bu verilere ne yapacağınızı düşünmelisiniz. Bu, veri fazla çekme (az çekme de bir sorun olabilir).
- Yukarıdaki nedenlerle, GraphQL, veri döndürme açısından diğer API yöntemlerinden daha hızlıdır.
- GraphQL, güçlü bir şekilde yazılmış bir dil olup, diğer şeylerin yanı sıra, kod hatalarının program çalışmadan önce değil, çalışırken tespit edilmesini sağlar.
- Graphql etrafında harika bir araç seti oluşturulmuş ve geliştirici dostu hale getirilmiştir.
- GraphQL, REST API’nin aksine, tek bir endpoint’a sahiptir. Bu, tüm verilerin tek bir istek ile alınabileceği anlamına gelir.
Madalyonun iki yüzü: istek sahibi (istemci) ve sağlayıcı (Graphql sunucusu)
Graphql’i şimdiye kadar veri “isteği” açısından inceledim. Örneğin, Salesforce veya Microsoft gibi bir şirket, veri sorgulamak ve manipüle etmek için (okuma, güncelleme, ekleme) bir Graphql API’si kurabilir.
Örneğin, Salesforce ile ilgili müşteri olayları verilerini bir müşteri portalına dahil etmek istiyorsak, en verimli yol, portal aracılığıyla Salesforce Graphql sunucusunaexact veri isteğinde bulunmaktır. İstediğiniz verilerin tam olarak alırsınız, fazla veya eksik çekme olmaz 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öntem oluşturan kuruluştur.
Graphql mimarisini oluştururken, bir kuruluş tüm sistemlerini bir modelde birleştiren bir model oluşturur. Bu sistemleri birleştirmiş olur ve bir kez yapıldığında, altta yatan sistemin karmaşıklığını ortadan kaldırır. Çalışma tamamlandıktan sonra, veri sorgulama API aracılığıyla sorunsuz hale gelir.
Uygulamaları veya sağlayıcıları karşılaştırdığımda, bana verilerin geri alınmasına olanak tanıyan işlevleri incelerim. Onlardan e-posta yoluyla veya esnek olmayan önceden tanımlanmış raporlara güvenmek istemiyorum. Verilere esnek ve zamanında bir şekilde sorgulayarak “bağlanmak” istiyorum. İki uygulama/sağlayıcı benzer diğer karşılaştırma noktalarında benzer ise ve biri REST API diğeri Graphql API sunuyorsa, kesinlikle API olanı seçeceğim.












