GraphQL: Nedir, neden kullanılır?

Mehmet Dilmen
2 min readOct 27, 2021

--

Herkese Merhaba,

Bu benim ilk yazım :)

İlk yazımı GraphQL’i anlatarak başlamak istedim. Yazılım dünyasında adından sıkça söz ettiren ve merak uyandıran GraphQL’i yakından tanıyalım.

GraphQL Nedir ?

GraphQL teknolojisi 2015 yılında Facebook şirketi tarafından geliştirilmiş, açık kaynaklı API sorgulama dilidir.

Aslında günümüzde sıkça bilinen ve kullanılan REST API üzerine türetilmiş yeni bir mimaridir.

GraphQL arayüz tarafına normal API istemcilerine göre daha basit bir veri akışı sağlamasından dolayı genellikle arayüz yönelimli bir teknolojidir.

GraphQL ve REST Farkları ve Benzerlikleri

İlk görselde GraphQL tek bir istekle istediği şekilde veriye sahip olabilirken

REST mimarisinde iki farklı istek atılması gerekmektedir.

Bu durum ise iki teknoloji arasında hız farkını ortaya koymaktadır.

REST performanstan daha çok güvenlilik ve dayanıklılık esas almaktadır.

GraphQL ise performans odaklı tek bir istek üzerinden HTTP aracılığıyla çalışmaktadır.

Benzer noktalarından bahsedecek olursak ikisi de HTTP üzerinden yönetilmektedir. Ve aynı zamanda API oluşturmak için kullanılmaktadırlar.

GraphiQL

GraphQL kurulumu sonrasında geliştirme esnasında işinizi kolaylaştıracak harika bir ara yüz ile sorgularınızı ve aynı zaman dokuman olarak kullanabileceğiniz ara yüz vermektedir.

Express üzerinde ki örnek çalıştırma metodu;

app.js dosyası

app.use(“/graphql”, expressGraphQL({ schema, graphiql: true }));

Şema üzerinden API üzerinde neler yapabileceğinizi görebilirsiniz.
Örnek Sorgu

GraphQL kullandığımız için görselde ki sorgu ile bir çok tabloda ki veriye ulaşabildik ve Person ID: “1” olan ve buna bağlı olan diğer tüm istediğimiz verilere erişim sağlayabildik.

Bu durumu REST API ile yapmış olsaydık muhtemelen bir kaç istek atmamız gerekecekti.

Kısaca özetlemek gerekirse GraphQL daha çok arayüz geliştiricisinin istediği gibi veriyi getirmesine olanak sağlamaktadır.

Sizin de üzerinde çalışabileceğiniz örnek Star Wars API linklerini paylaşıyorum.

Yazarken çok keyif aldığım bir yazı oldu. Umarım sizde okurken keyif almışsınızdır. :)

1- REST: https://swapi.dev/
2- GRAPHQL: https://graphql.github.io/swapi-graphql/

Bazı Görseller alıntı kullanılmıştır kaynakları;

1-https://graphql.org/img/og-image.png

2-https://www.mobilelive.ca/wp-content/uploads/2020/11/GraphQL_Image2.png

--

--