Go ile API Programlama (RESTful + GraphQL + gRPC) Eğitimi
Golang ile API & RESTful web servisleri geliştirebilme, oluşturabilme ve sürdürebilme yetkinliğine sahip olabilirsiniz.
Eğitim 5 gün 30 saattir.

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
- PostgreSQL Veritabanı Hazırlıkları
- 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ı