GraphQL Schema Nedir?
İngilizce: GraphQL Schema
GraphQL şeması, API'deki tipleri, sorguları, mutasyonları ve alan ilişkilerini tanımlayan sözleşme katmanıdır.
GraphQL Schema Nedir?
GraphQL şeması, istemcinin hangi veriyi hangi tiplerle isteyebileceğini belirleyen API sözleşmesidir. Bir veritabanı şemasından farklı olarak sadece saklanan alanları değil, dışarı açılan sorgu, mutasyon ve ilişki yüzeyini tanımlar.
Şema genellikle SDL (Schema Definition Language) ile yazılır. type Product, Query, Mutation, enum, interface ve input tanımları, istemci ve sunucu arasında ortak dil oluşturur.
Nasıl Çalışır?
İstemci sorgu gönderdiğinde GraphQL sunucusu önce sorgunun şemaya uygun olup olmadığını kontrol eder. Olmayan alanlar, yanlış argümanlar veya tip uyuşmazlıkları resolver çalışmadan önce hata verir. Doğrulama geçerse her alan ilgili resolver fonksiyonu ile çözümlenir.
Şema aynı zamanda otomatik dokümantasyon ve tip üretimi için kullanılır. Frontend ekipleri TypeScript tiplerini, backend ekipleri de test ve sözleşme kontrollerini şemadan türetebilir.
İş Dünyasında Kullanımı
İyi tasarlanmış GraphQL şeması, ürün ekipleri arasında API anlaşmazlıklarını azaltır. Alan adları, nullable davranışı, sayfalama modeli ve hata yaklaşımı baştan netleştiğinde mobil ve web uygulamaları aynı sözleşmeyle ilerler.
GraphQL tarafında şema çalışma zamanıyla iç içedir; OpenAPI ise REST API’ler için benzer sözleşme ve dokümantasyon rolünü üstlenir. Her iki yaklaşımda da sözleşmeyi güncel tutmak bakım maliyetini belirler.