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

MongoDB Hosting – Database-as-a-Service

Bu yazımda  MongoDB için Hosting/DBaaS için servislerinden bahsedecem. Konu Mysql olunca 10 TL’lik hosting paketlerinde bile default olarak geliyor. Fakat aynısını MongoDB için söylemek mümkün değil. MongoDB’yi kullanabilmek için 2 seçeneğimiz var. İlk yol MongoDB serverını indirip kendi sunucumuza kurmak ya da etliye sütlüye karışmadan bu hizmeti servis olarak almak.

MongoDB’yi servis olarak alabileceğiniz yerler:

MongoDB Atlas

MongoDB’nin kendi DBaaS hizmetidir.

Mlab

Compose

RackSpace

 

Google Chrome’da Kullandığım Eklentiler

Chrome’da ki eklentiler sayesinde artık yapacağımız birçok işi tek tıkla halledebiliyoruz. Kullandıklarımı aşağıda listeledim. Sizde yorum kısmından öneride bulunabilirsiniz.

1.Google Mail Checker

Resmi Google Chrome Eklentisi. Gmail’ de kaç adet okunmamış mail olduğunu gösteriyor ve tıkladığınızda Gmail hesabınıza gidiyor.

2.Wappalyzer

Web sitelerinin kullandıkları yazılım teknolojilerini tespit ediyor.