Skip to main content

GraphQL Nedir?

GraphQL Facebook tarafından geliştirilen istemci seviyesi sorgu dilidir. Kısaca GraphQL, istekleri ve yanıtları paketleyerek istemciler ve API’ler arasındaki gidişleri düşüren ve  gereksiz verilerin azaltılmasına yardımcı olan bir sorgu dili.

GraphQL’i daha iyi anlayabilmek için aşağıdaki örneği inceleyecek olursak;

Şuanda kullandığımız REST API yapısında id’si “1” olan kullanıcının bilgilerini getirmek istediğimizde uygulamamız aşağıdaki gibi bir istek yolluyor.

REQUEST:

Kullanıcı
GET /user/1

Kullanıcıya ait resimler
GET /user/1/images

RESPONSE:

{
    "username":"enginkartal",
    "email":"a@b.com",
    "title":"Developer",
    "city":"Istanbul",
    "country":"Turkey",
    "lastActivityDate":"2017-05-18"
}

Response’da  kullanıcıya ait tüm alanlar gelir. Fakat uygulamamıza sadece “username” ve “city” bilgileri lazım. Bu durumda gereksiz bir çok user bilgiside response’da bize dönmüş olacak.

Aynı isteği GraphQL ile gönderelim:

REQUEST:

query {
 user(1){
    username,
    city
    }
}

RESPONSE:

{
data:{
"username":"enginkartal",
"city":"Istanbul"
  }
}

Kullanmayacağımız gereksiz alanlar response’da gelmiyor. Sadece istekte bulunduğumuz alanlara ait bilgiler bize geri dönüyor.

Olayı kısaca şöyle düşünebiliriz. Rest Api’de backend’in gönderdiği verilerle işlem yapmak durumundaydık. Tek bir alan bilgisine ihtiyacınız olsa bile size tüm alanlar geliyordu. GraphQL’de ise hangi verilerin gelmesi gerektiğini client belirliyor.

GraphQL iki yapıdan oluşuyor.

GraphQL Client

https://github.com/facebook/relay

https://github.com/apollographql/apollo-client

https://github.com/kadirahq/lokka

GraphQL Server

Sunucu tarafı schema ve çözümleyicilerden meydana geliyor.

https://github.com/graphql/graphql-js

https://github.com/apollographql/graphql-server

https://github.com/webonyx/graphql-php

 

GraphQL için grup oluşturdum. Bu gruplarda ve etkinliklerde ki amacım GraphQL konusunda geliştirme yapan veya yapmak isteyen kişilerin bilgi alışverişinde bulunabilmesi ve GraphQL konusunda bir topluluk oluşması.

GraphQL Istanbul

Istanbul, TR
62 Members

Bu grup GraphQL teknolojisi ile ilgilenen kişiler içindir.

Check out this Meetup Group →

 

https://www.facebook.com/groups/graphqlistanbul/

Kaynak : http://graphql.org