- Katılım
- 10 Nisan 2025
- Mesajlar
- 742
- Reaksiyon puanı
- 81
- Konu Yazar
- #1
GraphQL, API’ler için veri sorgulama ve manipülasyon dili olup aynı zamanda sunucu tarafında çalışan bir çalışma zamanıdır. 2012 yılında Facebook tarafından geliştirilen ve 2015’te açık kaynak yapılan GraphQL, REST API'lere alternatif olarak ortaya çıkmıştır. Temel amacı, istemcinin (client) ihtiyaç duyduğu veriyi tam ve eksiksiz bir şekilde, gereksiz fazlalık olmadan alabilmesini sağlamaktır.
graphql
KopyalaDüzenle
Bu sorgu sonucunda sadece
GraphQL’in Temel Özellikleri
- İstemci Odaklı Sorgulama:
GraphQL’de istemci, ne tür veriye ihtiyacı olduğunu açıkça belirtir. Bu sayede yalnızca gerekli alanlar sunucudan çekilir. Bu özellik, özellikle mobil uygulamalarda veri tasarrufu ve hız açısından büyük avantaj sağlar. - Tek Endpoint (Tek Uç Nokta):
REST API'lerde her kaynak için farklı URL'ler gerekirken, GraphQL sadece tek bir endpoint üzerinden çalışır. Bu da yönetimi kolaylaştırır. - Veri Şekillendirme:
GraphQL ile karmaşık veri yapıları (örneğin: bir kullanıcı ve o kullanıcının yazdığı yazılar) tek bir istekle alınabilir. REST'te bu genellikle birden fazla istekle yapılmak zorundadır. - Güçlü Tip Sistemi:
GraphQL, şemaya dayalıdır. API’nin sunduğu veri yapıları açıkça tanımlanır ve istemciler bu şemaya göre sorgulama yapar.
GraphQL Sorgu Yapısı
GraphQL’de sorgular, JSON benzeri bir yapıyla yapılır. Örneğin bir kullanıcının sadece adı ve e-postasını almak istiyorsanız:graphql
KopyalaDüzenle
Kod:
{
user(id: "1") {
name
email
}
}
name
ve email
bilgileri döner, ekstra hiçbir veri alınmaz.REST ve GraphQL Karşılaştırması
Özellik | REST | GraphQL |
---|---|---|
Endpoint yapısı | Çoklu endpoint | Tek endpoint |
Veri aktarımı | Sabit yapılı | İstemci tarafından belirlenir |
Aşırı veya eksik veri | Sık görülür | Gerekli veri kadar alınır |
Versiyonlama | URL ile yapılır (/v1/ , /v2/ ) | Gerekmez; şema ile kontrol edilir |
Kullanım Alanları
GraphQL, özellikle şu durumlarda çok tercih edilir:- Mobil uygulamalar (düşük veri tüketimi için)
- Modern web uygulamaları (React, Angular, Vue gibi)
- Mikro