GraphQL’e Giriş

Harun Akgün
Oct 19, 2018 · 2 min read

Bir süredir gerek kişisel projelerimde gerekse dahil olduğum kurumlarda GraphQL üzerine çalışıyorum. Gözlemlediğim kadarıyla GraphQL özelinde Türkçe kaynak bulmak neredeyse imkansız. Bu sebeple GraphQL’in resmi dökümantasyonunu elimden geldiğince Türkçeye çevirmeye çalıştım. Umarım faydalı olabileceği kişilere ulaşır. Dökümantasyonun aslına şu adresten ulaşabilirsiniz: https://graphql.org/learn/


GraphQL’in nasıl çalıştığı ve nasıl kullanılacağını bu makale serisinden öğrenebilirsiniz. Bir GraphQL servisini nasıl yazabileceğiniz ile ilgili döküman mı arıyorsunuz? GraphQL’i birçok farklı dilde kullanabilmenize yardımcı olmak için hazırlanmış kütüphaneler var. How to GraphQL adresindeki ücretsiz eğitimlerle derinlemesine bir deneyim elde edebilirsiniz.

GraphQL hem API’larınız için hazırlanmış bir sorgulama dili, hem de sunucu tarafında veriniz için hazırlamış olduğunuz tip sistemlerini kullanarak sorgular çalıştırmaya yarayan bir araçtır. GraphQL belirli bir veritabanı ya da depolama motoru (storage engine) ile doğrudan bağlantılı olarak çalışmaz, bunun yerine mevcut kodunuz ve verileriniz ile desteklenerek çalışır.

GraphQL servisleri tipler (types) ve bu tipler üzerinde tanımlanmış alanlar (fields) ile yaratılır. Daha sonra her tip üzerindeki her bir alana fonksiyonlar bağlanır. Örneğin sisteme giriş yapmış bir kullanıcının kim olduğunu (me) ve bu kullanıcının ismini bize veren servis aşağıdaki gibi gözükür:

type Query {
me: User
}

type User {
id: ID
name: String
}

her tipteki her bir alanın fonksiyonları ile birikte:

function Query_me(request) {
return request.auth.user;
}

function User_name(user) {
return user.getName();
}

Bir GraphQL servisi çalışmaya başladıktan sonra (genellikle bir web servisi üzerinde belirlenmiş bir URL’de çalışır), bu servise doğrulamak ve çalıştırmak için GraphQL sorguları gönderilebilir. Servis bir sorgu aldığında yalnızca tanımlanmış olan tip ve alanlar ile ilgili bir sorgu olup olmadığını kontrol eder, sonrasında daha önce tanımlanmış fonksiyonları çalıştırarak sonuç üretir.

Örnek bir sorgu:

{
me {
name
}
}

Aşağıdaki JSON sonucu üretecektir

{
"me": {
"name": "Luke Skywalker"
}
}

Sorgu dili, tip sistemi, GraphQL servisleri nasıl çalışır, GraphQL kullanırken dikkat edilmesi gereken noktalar ve genel problemlerin çözümlenmesi ile ilgili derinlemesine bir öğrenme tecrübesi için bu makale serisini okumaya devam edin.

Okumaya Devam Et > Sorgu ve Değişimler (Mutations)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store