Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Authentication ve authorization: Kimlik doğrulama ile yetkilendirme arasındaki fark
Çoğu geliştiricinin karıştırdığı iki kavramı ayırıyoruz: authentication (sen kimsin?) ile authorization (neye iznin var?). Aradaki fark, doğru sıra ve .NET'te bu ikisinin nasıl konumlandığı.
API versioning: Eski istemcileri kırmadan API'yi geliştirmek
API'yi zamanla geliştirirken eski istemcileri nasıl kırmayacağımızı işliyoruz: kırıcı değişiklik nedir, versiyonlama neden gerekli, URL/header/query yöntemleri ve .NET'te versiyonlamayı kurmak.
Configuration ve Options pattern: appsettings katmanları ve ayarları koddan ayırmak
Ayarları koddan ayırmayı işliyoruz: appsettings dosyaları ve ortam katmanları, bağlantı dizelerini güvenli yönetmek, Options pattern ile ayarları güçlü tiplerle okumak ve hassas verileri koddan uzak tutmak.
Global hata yönetimi: Tüm hataları tek merkezde yakalamak
Uygulamanın herhangi bir yerinde oluşan beklenmedik hataları tek bir merkezde yakalamayı işliyoruz: try-catch dağınıklığından kurtulmak, exception middleware kurmak ve kullanıcıya düzgün, güvenli cevap dönmek.
DTO nedir ve neden entity'yi doğrudan dönmemeliyiz?
DTO'ların ne olduğunu ve neden veritabanı nesnelerini doğrudan dönmemeniz gerektiğini işliyoruz: güvenlik, gizlilik, esneklik ve sözleşme kararlılığı açısından DTO kullanmanın somut faydaları.
Model binding: Gelen isteğin verisini metoda bağlamak (route, query, body, header)
Gelen bir isteğin içindeki veriyi .NET'in metot parametrelerine nasıl otomatik bağladığını işliyoruz: route, query string, gövde ve header'dan veri okumak, [FromBody] gibi attribute'lar ve sık hatalar.
İlk controller'ı yazmak: routing, attribute'lar ve action metotları
İlk gerçek controller'ımızı yazıyoruz. Routing nasıl çalışır, attribute'lar ne işe yarar, action metotları nasıl kurgulanır ve gelen bir istek doğru metoda nasıl ulaşır, adım adım işliyoruz.
Controller mı, Minimal API mı? Hangisini ne zaman seçmeli?
İki farklı endpoint yazma yaklaşımını karşılaştırıyoruz: controller tabanlı yapı ve Minimal API. Hangisi ne zaman mantıklı, ikisi arasındaki fark neye dayanıyor, örneklerle netleştiriyoruz.
İlk projeyi kurma: proje yapısı, Program.cs ve minimal hosting modeli
İlk .NET 9 Web API projemizi kuruyoruz. Program.cs dosyasını satır satır açıyor, minimal hosting modelini, builder ile app ayrımını ve middleware sırasının neden önemli olduğunu anlıyoruz.