Backend Nedir? Sunucu, Veritabanı ve API Mantığı
Backend, uygulamanın görünmeyen ama sistemi ayakta tutan tarafıdır. Bu derste backend'in parçalarını ve bir isteğin sunucuda nasıl işlendiğini öğreneceksin.
Öğrenme Hedefleri
- Backend katmanlarını tanımak
- Route, controller, service ve database ayrımını anlamak
- Auth ve validation neden gerekir görmek
- Basit backend proje yapısını kurabilmek
Backend Akışı
Bu ayrım büyüyen projelerde kodun anlaşılır kalmasını sağlar.
Backend Dosya Düzeni
Basit bir backend projede klasörler şöyle ayrılabilir:
Bu ayrım zorunlu bir kural değil, büyüyen projede zihinsel yükü azaltan bir düzendir.
Route
Route, gelen isteğin hangi işlemle eşleşeceğini belirtir.
Route mümkün olduğunca ince kalmalıdır.
Validation
Kullanıcıdan gelen veri güvenilir değildir. Backend her inputu doğrulamalıdır.
Gerçek projelerde Zod, Joi veya framework validation araçları kullanılır.
Service Katmanı
Service, iş kuralının yaşadığı yerdir.
Bu kod controller içinde dağınık durmak yerine ayrı katmanda daha okunabilir olur.
Backend Güvenlik Refleksi
Backend geliştirici şu soruları sürekli sorar:
- Bu kullanıcı bu işlemi yapmaya yetkili mi?
- Gelen veri beklediğim formatta mı?
- Hata mesajı gizli bilgi sızdırıyor mu?
- Bu endpoint brute force'a açık mı?
- Bu dosya yüklemesi güvenli mi?
Hata Yönetimi
Backend her hatada stack trace döndürmemelidir. Kullanıcıya sade mesaj, log sistemine teknik detay gitmelidir.
Bu kalıbın tam örneği için Express Global Error Middleware kod örneğine bakabilirsin.
Backend Kalite Kontrol Listesi
- Input validation var mı?
- Yetki kontrolü endpoint içinde yeniden yapılıyor mu?
- Hata response formatı tutarlı mı?
- Loglar hassas veri içermiyor mu?
- Veritabanı sorguları ölçülüyor mu?
- Rate limit gereken endpointlerde aktif mi?
- Test edilebilir servis katmanı var mı?
Alıştırma
Bir not alma uygulaması için backend akışı çiz:
- Kullanıcı giriş yapar.
- Not listesi çekilir.
- Yeni not eklenir.
- Sadece not sahibi güncelleyebilir.
Her adımda hangi kontrol yapılmalı yaz.
Ek görev: Not oluşturma endpointi için request body, success response ve validation error response formatı tasarla.
Sonraki Adım
Backend öğrenirken API 101, JWT Authentication ve PostgreSQL Index Optimizasyonu dersleri birlikte çalışılmalıdır.