Sıfırdan Her Yönüyle GraphQL ve Apollo

GraphQL ve Apollo ile Node.JS, Express ve MongoDB Üzerinde Real-Time API Geliştirin

Ratings 4.79 / 5.00
Sıfırdan Her Yönüyle GraphQL ve Apollo

What You Will Learn!

  • Modern web uygulamalarını tek başınıza geliştirebileceksiniz.
  • GraphQL ve Apollo ile Real-Time çalışan API geliştirebileceksiniz.
  • Node JS ve React ile yetkilendirme işlemlerini yapabileceksiniz.
  • Optimistic UI ile gelişmiş kullanıcı deneyimleri yaratabileceksiniz.
  • Scalable dosya ve dizin yapısı kurgulayabileceksiniz.
  • Node JS, GraphQL, Apollo, MongoDB ve React'ı aynı proje üzerinde kullanabileceksiniz.

Description


Giriş

Bu bölümde REST ve GraphQL'in ne olduğunu, farklarını ve neden GraphQL'e geçmeniz gerektiğini öğreneceksiniz. 

Query, Mutation, Subscription gibi GraphQL'in temel yapı taşlarını bu bölümde teorik olarak öğreneceksiniz.


GraphQL Schema Language

GraphQL ile ilgili karşınıza çıkabilecek her türlü yazım şeklinden ve metodolojiden bahsetmeye çalışıyorum. Şema ve tip tanımlarımızı öncelikle JavaScript ile nasıl yapabileceğimizi öğreneceğiz. Sonra da aynı işlemi daha basit ve anlaşılır şekilde yapmamızı sağlayan GraphQL şema dilini öğreneceğiz. Böylelikle karşınıza çıkabilecek her türlü şema tanım şeklini kullanan kodları okuduğunuzda rahatlıkla anlamlandırabileceksiniz.


Real World Project Structure

Projeleri sırf örnek olsun diye geliştirmiyoruz. Gerçek dünyada yapılan projelere nasıl başlanıp, nasıl ilerleniyorsa aynısını kurs üzerinde uyguluyoruz. Böylelikle kursu bitiren biri rahatlıkla yeni projeler geliştirebilir kıvama geliyor.

GraphQL ile geliştirilen projelerde, sürdürülebilir dizin ve dosya yapısının nasıl olması gerektiğini detaylı olarak anlatıyorum. Kurs içerisinde, bu başlık için başlı başına bir bölüm bulunuyor.


Tech Stack

Projelerimizi backend tarafını "Node.JS, Express, GraphQL, Apollo Server ve MongoDB" oluştururken frontend tarafını "React ve Apollo Client" oluşturuyor.


Movie App Projesi

Pratik anlamda GraphQL'in temellerini öğrenmeye ve ilk adımlarımızı atmaya bu projede başlıyoruz.

Backend'de Node.JS, Express ve GraphQL kullandığımız bu projenin veritabanını MongoDB ve front-end tarafını da React ve Apollo ile geliştirdik.

Bu bölümde salt JavaScript ile GraphQL şemaları inşa etmeyi ve tip tanımlarını yapmayı öğreneceksiniz.

Bu bölümde genel olarak aşağıdaki kavramlara hakim olacaksınız.

  • Express ile GraphQL kurulumu

  • GraphQL Schema

  • Root Query

  • Resolver

  • GraphQLID

  • GraphQLList

  • GraphQLNonNull

  • Relations

  • Custom Type

  • Apollo Client

  • React Apollo Module

  • Refetch

  • QUERY, MUTATION

  • GraphiQL


Easysnap Projesi

Bu bölümde genel olarak aşağıdaki kavramlara hakim olacaksınız.

  • Apollo Server

  • Subscriptions

  • GraphQL Playground

  • Optimistic UI

  • Authentication (JWT)

  • Deploy


Authentication

GraphQL ile Token (JWT) tabanlı kimlik doğrulama işlemlerinin nasıl yapılacağını öğreneceksiniz. Gerek server, gerek client tarafında yapılması gereken işlemlere hakim olacaksınız.


Real-time API Geliştirmek

Twitter'ın hazırladığı API'yi görmüşsünüzdür. Birisi tweet attığı anda bu tweet'i gerçek zamanlı olarak yakalayabilirsiniz. Biz de hazırladığımız easysnap projesinde benzer bir yapı geliştiriyoruz. Bir kullanıcı snap attığı anda bundan haberdar oluyor ve tüm kullanıcılara gerçek zamanlı olarak gösterebiliyoruz.

Real-time API geliştirme konusunu Subscriptions bölümünde detaylı olarak öğreneceksiniz. Hem sunucu tarafında hem de client tarafında yapmanız gereken işlemleri öğrenmiş olacaksınız.


Optimistic UI

Sanırım Optimistic UI'ın ne olduğunu aşağıdaki gif açık bir şekilde ortaya koyuyor.

Aynı iş farklı iki yöntem. Solda bütün UI loading state ile yönetiliyor. Mesaj yazılıp "send" butonuna basıldığı anda UI üzerinde "loading" ifadesi gösteriliyor ve "loading" işlemi tamamlanana kadar herhangi bir işlem yapamıyoruz.

Ancak sağda Optimistic UI kullanılıyor. Tıpkı Facebook'un yaptığı gibi. Mesaj gönderildiği anda sadece o mesaj ile alakalı "loading" ifadesi gösteriliyor. Ve kullanıcı yeni bir işlem yapmak için beklemek zorunda kalmıyor.

Biz de kursta "easysnap" projesinde snap atarken benzer yapıyı kullanacağız. 
Apollo Client bize bu imkanı sağlıyor. Bu süreçleri yönetmeyi hiç olmadığı kadar kolaylaştırıyor.


Deploy

Hazırladığımız projenin deploy süreçlerinin nasıl yönetileceğini bu bölümde konuşuyoruz.

Projenin Node + GraphQL + Apollo backend'ini Heroku üzerine deploy ediyoruz.

React + Apollo frontend'ini de Surge sh üzerinde deploy ediyoruz.

Who Should Attend!

  • Fullstack web uygulamaları geliştirmek isteyen,
  • GraphQL ve Apollo ile Real API geliştirmek isteyen,
  • React ve Apollo Client ile etkileşimli modern arayüzler geliştirmek isteyen,
  • Gerçek dünya projelerinin nasıl geliştirildiğini öğrenmek isteyen herkes.

TAKE THIS COURSE

Tags

  • Node.Js
  • React JS
  • GraphQL

Subscribers

1363

Lectures

146

TAKE THIS COURSE



Related Courses