GraphQL vs REST

Mehmet Ali Yılgın
2 min readJan 8, 2022

GraphQL Nedir?

GraphQL, API’ler için açık kaynaklı bir veri sorgulama ve işleme dili ve mevcut verilerle sorguları gerçekleştirmek için bir çalışma zamanıdır.

GraphQL, Facebook tarafından mevcut verilerle sorgu yürütmek için geliştirilen bir uygulama katmanı sunucu tarafı teknolojisidir. GraphQL, sunucudan istemciye veri yüklemenize yardımcı olur. Programcıların yapmak istedikleri istek türlerini seçmelerine olanak tanır.

GraphQL

REST API Nedir?

Rest API, 2000 yılında HTTP spesifikasyonunun yazarlarından biri olan Roy Fielding tarafından doktora tezinin bir parçası olarak geliştirilmiştir. Rest API, devletsel sunucu birimidir. Yani bir diğer ifadeyle tüm veri tabanına erişim yoktur. Kısıtlanmış bir şekilde veriye ulaşmanıza olanak tanır.

REST API

GraphQL ve REST Farkları

  • GraphQL, mevcut verilerle sorguları yürütmek için kullanılan bir uygulama katmanı sunucu tarafı teknolojisidir, REST ise Web hizmetleri oluşturmak için bir dizi kısıtlamayı tanımlayan bir yazılım mimari stilidir.
  • GraphQL şema açısından organize edilebilirken, REST uç noktalar açısından düzenlenebilir.
  • GraphQL’deki geliştirme hızı hızlı, REST’teki geliştirme hızı ise yavaştır.
  • GraphQL mutasyonları için mesaj formatı bir dizge (JSON) olmalı, REST mutasyonları için mesaj formatı herhangi bir şey olabilir.
  • GraphQL, sorgu doğrulaması için meta verileri kullanırken REST, önbelleğe alınabilir makine tarafından okunabilir meta verilere sahip değildir.

GraphQL’in Özellikleri

  • Statik olarak yazılmıştır, bu nedenle kullanmadan önce değişkeni tanımlamanıza gerek yoktur.
  • GraphQL ön ucu arka uçtan ayırabilir.
  • Fazla veya az veri getirme yok.
  • Dil ve HTTP’den bağımsızdır.
  • GraqphQL’in dokümantasyonu ekstra maliyet olmadan gelir.
  • Bant genişliğinden tasarruf etmenize yardımcı olur.

REST’in Özellikleri

  • REST, tek tip bir arayüze sahiptir.
  • REST hizmetleri, müşteri talebini kapsayacak şekilde yüksek performans elde edecek şekilde ölçeklenebilir.
  • Kaynaklara isme göre kolayca erişilebilir.
  • REST API, sistemlerin verileri kolay bir şekilde iletmesini ve göndermesini veya almasını sağlar.
  • Bir uygulamadaki veritabanı kaynağı, bir REST API uç noktası ile hızlı bir şekilde eşleştirilebilir.
  • REST, sık kullanılan bilgileri bellekte saklamanıza izin verir.
  • Basit bir mimariye ve desene sahiptir.
  • REST API’si birden fazla sunucudan sunulabilir.

Hangisini seçmek doğru olacaktır?

Açıkcası DB erişimini kısıtlamak istediğiniz yapılarda REST önerilir. Lakin hızlı iş bitirmek istiyorsanız GraphQL ile çalışmalısınız. Ben araştırmalarımdan sonra performans ve güvenlik açısından REST API tarafını tutmaktayım. Lakin unutmayın eldeki veriler, kaynak, maliyet ve proje bazında düşünmeniz gerektiğinde işler değişebilir.

--

--