Go ile API Programlama (RESTful + GraphQL + gRPC) Eğitimi

Bölüm 1 – Başlangıç

  • Bu eğitim kimlere hitap ediyor?

  • Eğitimde İçeriğine Genel Bakış

  • Eğitimde Kullanılacak Teknolojiler

Bölüm 2 – Go Programlama Diline Genel Bakış

  • Go Programlama Dili Tasarımı ve Geliştirilmesi

  • Go Programlamaya Başlarken

  • Go Programlama Dili Kullanıcıları

  • Go Kütüphanelerine Genel Bakış

    • Go Standard Library
    • Parti Go Kütüphaneleri
  • Go’nun Söz Dizimi Hassasiyeti

  • Go Araç ve Komutları

  • Go Paketlerini Kullanmak

  • İlk Go Uygulaması

  • Komut Satırı Argümanları

  • Ortam Değişkenlerini Elde Etmek

  • Web ve API Uygulamalarında Go’nun Önemi

Bölüm 3 – Çalışma Ortamı ve Hazırlıklar

  • Go Programlama Ortam Kurulumu

  • IDE : Geliştirme Editörleri

  • İlk Go Programı

  • Ortam Değişkenleri

  • Go Araçları

  • Veritabanı Operasyonları İçin Ortam Hazırlıkları

    • PostgreSQL Veritabanı Hazırlıkları
      • PostgreSQL Veritabanı Kurulum Hazırlıkları
      • PostgreSQL Veritabanı Kurulumu
      • PostgreSQL Veritabanına Bağlanmak ve Test Etmek
    • PostgreSQL as a Service ile Cloud PostgreSQL Kullanımı
    • MongoDB Veritabanı Hazırlıkları
      • MongoDB Veritabanı Kurulum Hazırlıkları
      • MongoDB Veritabanı Kurulumu
      • MongoDB Veritabanına Bağlanmak ve Test Etmek
    • Redis Veritabanı Hazırlıkları
      • Redis Veritabanı Kurulum Hazırlıkları
      • Redis Veritabanı Kurulumu
      • Redis Veritabanına Bağlanmak ve Test Etmek

Bölüm 4 – Komut Satırı Operasyonları

  • Komut Satırı Argümanlarını Kullanmak

  • Ortam Değişkenlerini Okumak ve Değiştirmek

  • Flags

  • CLI Uygulaması Geliştirmek

Bölüm 5- Hata Yönetimi & Loglama

  • Hata Yönetimine Genel Bakış

  • Hata İşleme Stratejileri

  • Error Handling

  • Panic & Recover

  • Try … catching Yaklaşımı

  • Loglama

  • Pkg_errors Paketi

  • Apex ve logrus Paketleriyle Yapısal Loglama

  • Context Paketi ile Loglama

  • Paketi Seviyeli Global Değişkenler

  • Uzun Süren İşlemler İçin Panikleri Yakalamak

Bölüm 6 – I/O, Dosya Sistemi ve Tarih/Zaman ile Çalışmak

  • Tarih ve Zaman Operasyonları

    • Time Paketinin Temel Kullanımı
    • Tarih ve Zaman Operasyonları
  • Bytes ve Strings Paketleri

    • String Birleştirme : bytes Paketi ile
    • String Birleştirme : strings Paketi ile
    • Şifre Üretmek : GeneratePassword – Temel Versiyon
    • Şifre Üretmek : GeneratePassword – Gelişmiş Versiyon
  • Dosya ve Dizin Operasyonları

    • Dosya Oluşturmak
    • Dosya Bilgisi Almak
    • Dosyayı Yeniden İsimlendirmek ve Taşımak
    • Dosyanın Varlığını Kontrol Etmek
    • Dosyayı Açmak ve Kapatmak
    • Bir Dosyanın Okuma ve Yazma İzinlerini Kontrol Etmek
    • Bir Dosyayı Kopyalamak
    • Bir Dosyaya Bayt Veri Yazmak
    • Geçici Dosyalar ve Dizinler İle Çalışmak
    • Dosya Silmek
  • Dosya Sıkıştırma ve Açma Operasyonları

    • ZIP Dosyası Oluşturmak ve İçerisine Dosya Eklemek
    • ZIP Dosyasındaki Dosyaları Dışarı Aktarmak

Bölüm 7 – Veri Dosyaları ve Sıkıştırma Operasyonları

  • Go Standard Library : Encoding Paketi

  • Go ile XML, JSON ve CSV Operasyonları

    • XML, JSON ve CSV Veri Formatlarına Genel Bakış
    • JSON Operasyonları
    • XML Operasyonları
    • CSV Operasyonları
  • YAML & TOML Operasyonları

    • YAML
    • TOML
  • Araştırma Ödevi : Merkez Bankası Döviz Kuru Üzerinde Çalışmak

  • Dosya Sıkıştırma Operasyonları

    • TAR Dosyaları ile Çalışmak
    • ZIP Dosyaları ile Çalışmak
  • Veri Dosya Formatlarının Konfigürasyon Dosyası Olarak Kullanımı

Bölüm 8 – RESTful API Mimari ve Tasarımı

  • Giriş

  • Neden RESTful API Kullanıyoruz?

  • RESTful API : Terminolojiye Genel Bakış

  • Bir Request’in Anotomisi

    • Endpoint
    • HTTP Metot
    • HTTP Header
    • Data (ya da body, message)
  • REST Servisleri İçin Tasarım İlkeleri

    • Basit tutmak
    • İsimleri kullan, fiilleri değil!
    • Doğru HTTP metodunu seçmek
    • Tekil değil, çoğul isimler kullanmak
    • Parametreler kullanmak
    • Doğru HTTP dönüş kodları hayat kurtarır
    • API Versiyonlama
      • Semantik Versiyonlama
      • REST API’ler İçin Versiyonlama Formatları
    • Desteklenen Veri Formatları Kritik Öneme Sahiptir
    • Veri ve Hata Mesajların Standart Olmalı
    • API Endpoint
    • Muhafaza Sözleşmesi
    • Arama, Sıralama, Filtreleme ve Sayfalama
  • API’lerin Dökümantasyonu

    • REST Tabanlı API’lerin Dökümantasyonu

Bölüm 9 – RESTful API Programlama

  • Paket İnceleme : net/http

  • net/http ile İlk Web Sunucuyu Oluşturmak

  • Routing

    • net/http ile Routing
    • Gorilla Toolkit ile Routing
  • Handling

    • Handle
    • HandleFunc
    • HandlerFunc
    • CustomHandler
    • 3-Party Serve Mux
  • Js ile Web UI Programlama

    • js’e Genel Bakış
    • js ile Web UI Programlama
  • Response Header ile Çalışmak

  • Request ve ResponseWriter ile Çalışmak

  • Header’a Veri Eklemek

  • Context

  • Output Stream’i Tamponlamak

  • Dosya Sunucusu Oluşturmak

  • Struct ve Clasure Nesnelerinin Stateful Handler’lar İçin Kullanımı

  • RESTful API Projesi : Not Defteri API’si

  • Doğrulama Operasyonları : Validation Input

    • RegEx ile Veri Doğrulama
    • URL Doğrulama
    • HTTP’den Gelen İsteği Doğrulamak
  • Rendering ve Content Negotiation

  • RESTful API Projesi : Kullanıcı Giriş ve Kayıt API’si

  • Zincirleme : Chaining

    • Go’da Uygulamalar ile Chaining Yöntemi
    • Chaining Yöntemi İçin API Uygulaması
  • Sayfalama, Filtreleme, Sıralama ve Arama Operasyonları

    • Sayfalama
    • Filtreleme
    • Sıralama
    • Arama
  • ‘Sayfa Bulunamadı’ Handler’ı Üretme Örnekleri

  • API Yönlendirme Yöntemleri

  • RESTful API Projesi : Makale Sistemi API’si

  • Caching

    • Genel Cache Kullanımı
    • Server Side Cache
  • RESTful API Projesi : Kullanıcı İşlemleri API’si

  • API Veri Dönüşleri

    • HTTP Response Status Code Operasyonları
    • HTTP JSON Hata Dönüşleri
    • API Veri Dönüş Türleri
      • API Geri Dönüş Operasyonlarına Genel Bakış
      • Response Olarak Düz Metin Döndürmek
      • Response Olarak XML Döndürmek
      • Response Olarak JSON Döndürmek
      • Response Olarak HTML Döndürmek
      • Response Olarak Üretilen HTML’i String Formatında Döndürmek
      • JSON API’yi GRPC Olarak Dışarı Aktarmak
  • Middleware Oluşturma ve API Entegrasyonu

    • Route Mekanizması İçin Middleware Katmanı Oluşturmak
    • Yetkilendirme İçin Middleware Katmanı Oluşturmak
  • Loglama Operasyonları

    • Router Mekanizmasına Logger Eklemek
    • HTTP Request ve Response Loglama
    • 3-Parti Middleware Kullanımı
  • HTTP İsteklerini Sınırlandırmak

  • RESTful API’ye ‘Service Object Pattern’ Uygulanması

  • Go API’leri İçin Dökümantasyon Yöntemleri

    • SwaggerUI ile Go API Dökümantasyonu

Bölüm 10 – Go RESTful API Projesi : ‘Kullanıcı Bilgi’ API

  • ‘Kullanıcı Bilgi’ API Uygulamasına Genel Bakış

  • API’nin JSON Veri Yapısı ve Veriyi Oluşturmak

  • API’nin Model Katmanını Geliştirmek

  • API’nin Veri Katmanını Geliştirmek

  • API İçin Yayın Sunucusu Geliştirmek

  • API’nin Fonksiyonlarını POSTMAN İle Test Etmek

Bölüm 11 – Go ile Veritabanı Operasyonları

  • Go ile Veritabanı Programlama Temeller

  • MongoDB

    • Go ve MongoDB ile API Programlama
  • PostgreSQL

    • Go ile Veritabanı Operasyonları
  • GORM ile Veritabanı Operasyonları

  • Açık Kaynaklı Go Veritabanı Kütüphanelerini İncelemek

Bölüm 12 – Go RESTful API Uygulamalarında Güvenlik ve Kriptografi

  • RESTful API Güvenliğine Genel Bakış

  • CORS : RESTful API için CORS Ayarları

  • Kriptografi

    • Kriptografiye Genel Bakış
    • Hashing
    • Encryption
  • HTTPS

    • API’ye HTTPS/TLS Desteği Eklemek
    • Aynı Yayını HTTP ve HTTPS Üzerinden Yapmak
    • HTTP İsteklerini HTTPS’e Yönlendirmek
  • RESTful API Uygulamalarında Kimlik Denetimi

    • Kimlik Doğrulama ve Yetkilendirmeye Genel Bakış
    • Kimlik Doğrulama Yaklaşımları
      • Cookie-Based Yetkilendirme
      • Session-Based Yetkilendirme
      • Token-Based Yetkilendirme

Bölüm 13 – Go RESTful API Uygulamalarında ‘Temiz Mimari’ Kullanımı

  • Temiz Uygulama Mimari Nedir?

  • Temiz Uygulama Mimari Geliştirme ve Kullanmanın Avantaj ve Dezavantajları

  • Go ile Temiz Web Uygulama Mimarisi Örneği

Bölüm 14 – Go RESTful API Uygulaması : ‘Kitap Depo’ API

  • ‘Kitap Depo’ API Uygulamasına Genel Bakış

  • RESTful API’nin Model Katmanını Geliştirmek

  • RESTful API’nin Veri Katmanını Geliştirmek

  • RESTful API İçin Yayın Sunucusu Geliştirmek

  • RESTful API’nin Fonksiyonlarını POSTMAN İle Test Etmek

Bölüm 15 – Go RESTful API Uygulaması : ‘Yapılacaklar Listesi’ API

  • ‘Yapılacaklar Listesi’ API Uygulamasına Genel Bakış

  • RESTful API’nin Model Katmanını Geliştirmek

  • RESTful API’nin Veri Katmanını Geliştirmek

  • RESTful API İçin Yayın Sunucusu Geliştirmek

  • RESTful API’nin Fonksiyonlarını POSTMAN İle Test Etmek

Bölüm 16 – Go RESTful API Uygulamaları İçin Test Operasyonları

  • Yazılımda Test Kavramına Genel Bakış

  • Go’da Unit Test Gerçekleştirmek

  • Go’da Performans Testleri Gerçekleştirmek

  • Go RESTful API Uygulamalarında Test Operasyonları

Bölüm 17 – Go RESTful API Uygulamaları İçin İstemci Programlama

  • Konsol İstemcisi

    • Harici Bir RESTful API’yi Sömürmek
    • Kendi geliştirdiğimiz Bir RESTful API’yi Sömürmek
  • Web İstemcisi

    • React ile Go API Sömürmek
    • Angular ile Go API Sömürmek

Bölüm 18 – Go RESTful API Uygulamaları İçin Docker

  • Go RESTful API için Docker Kullanımı

Diğer eğitimler hakkında bilgi almak istiyorsanız Eğitim Takvimini inceleyebilirsiniz. Depar BT ailesiyle tanışmak için bizi ziyaret edebileceğiniz konumuzu öğrenebilirsiniz.