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

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.

Ücretsiz SSL (Let’s Encrypt) Alma ve Cpanel’e Yükleme

Let’s Encrypt bedava ssl hizmeti ücretsiz ve açık kaynak bir projedir. Sponsorları arasında Mozilla,Cisco,Chrome,Facebook gibi birçok büyük şirket var.  Themeforest, codecanyon gibi envato servisleride Let’s Encrypt kullanıyor.

envato-ssl
Bu yazıda paylaşımlı hosting’e nasıl Let’s Encrypt ssl’i yükleyeceğimizden bahsedecem.

sslforfree.com adresinden ssl yükleyeceğimiz domainimizi yazıp ilerliyoruz.

sslforfree-1

2. Aşama domainimizi doğrulama  aşamasıdır. 2 tür doğrulama vardır. Bunlar otomatik ve manueldir. Otomatik doğrulamada ftp bilgilerinizi yazarsınız ve sistem domain ve ftp bilgilerinizi doğrular. Bu yöntem daha hızlıdır. Manuel doğrulamada  ise “.well-known” adında bir klasör  oluşturup,  dosyayı upload  etmelisiniz. Belirtmiş olduğu doğrulama  linkine tıklayıp doğrulamayı gerçekleştirmelisiniz.

Doğrulamayı gerçekleştirdikten sonra  “Download Free SSL Certificate” butonuna  tıklıyoruz. Bizi “Certificate Successfully Generated”  ekranına yönlendiriyor. Bu sayfada bize sertifikanın başarıyla  oluşturulduğunu belirtiyor. Sertifika genelde  90 günlüktür. 90 gün sonra  tekrar  almanız gerekiyor.  Bitiş tarihini kaçırmamanız için “Get Notified of Expiration” bölümünden üye olabilirsiniz.

success-ssll

 

3. ve son aşama olan kısım ise sertifika dosyalarının paylaşımlı hosting  paneli olan  cpanel’e yükleme işidir. Bu aşamada elimizde olan sertifika dosyalarını (Certificate,Private Key,CA Bundle) cpanel’de yer alan  “SSL/TLS Yöneticisi\Siteniz için SSL yükleyin ve yönetin (HTTPS)\SSL sitelerini yönetin” kısmından cpanel’e  yüklüyoruz.

cpanel-x-ssl-tls-yoneticisi-ssl-ana-bilgisayarlarini-yonetin