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

Go ile API Programlama Eğitimi Depar Akademi

Go İle API Programlama Eğitim İçeriği

  • Bu eğitim kimlere hitap ediyor?
  • Eğitimde İçeriğine Genel Bakış
  • Eğitimde Kullanılacak Teknolojiler
  • 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
    • 3. Parti Go Kütüphaneleri
  • Go’nun Söz Dizimi Hassasiyeti
  • Go Programlama için Geliştirme Editörleri
  • 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
  • Go Programlama Dili 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
  • Komut Satırı Argümanlarını Kullanmak
  • Ortam Değişkenlerini Okumak ve Değiştirmek
  • Flags
  • CLI Uygulaması Geliştirmek
  • 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
  • Tarih/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
  • 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ı
  • 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
  • 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
  • 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
  • ‘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
  • 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
  • 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
  • Temiz Uygulama Mimari Nedir?
  • Temiz Uygulama Mimari Geliştirme ve Kullanmanın Avantaj ve Dezavantajları
  • Go ile Temiz Web Uygulama Mimarisi Örneği
  • ‘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
  • ‘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
  • 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ı
  • 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
  • Go RESTful API için Docker Kullanımı