Proje: Okul B2B App · Hub: Okul B2B App — Conventions
NetworkManager Hata Sınıfları
utils/NetworkManager.ts — Hata sınıfları ve network state yönetimi.
Hata Sınıfı Hiyerarşisi
Error
└── NetworkError (base)
├── ServerError ← HTTP 4xx/5xx
├── TimeoutError ← 30s timeout
├── ConnectionError ← Bağlantı kurulamadı
└── NetworkError ← Genel ağ hatası
ServerError Detayları
class ServerError extends NetworkError {
status: number; // HTTP status kodu (400, 401, 403, 404, 422, 500...)
responseBody: any; // Ham API yanıt body'si
getApiMessage(): string | null; // API'den gelen hata mesajı
getFieldErrors(): Record<string, string[]> | null; // Validation hataları
}getFieldErrors() Kullanımı
const fieldErrors = error.getFieldErrors();
// { title: ["Bu alan zorunludur"], text: ["En az 150 karakter olmalı"] }SchoolContentService bu yöntemi form validation hatalarını göstermek için kullanır.
checkNetworkBeforeRequest()
ApiClient her istekte önce bağlantı kontrolü yapar:
import { checkNetworkBeforeRequest } from '@/utils/NetworkManager';
await checkNetworkBeforeRequest(); // Offline ise ConnectionError fırlatırNetworkStatusBanner
components/ui/NetworkStatusBanner.tsx — Uygulama genelinde bağlantı durumu banner’ı.
NetworkManager singleton’a subscribe olarak bağlantı değişimlerini dinler.
Related
- error-handling-pattern — hata yakalama ve gösterme
- api-client-pattern — istek seviyesinde hata yönetimi