AutoStocker.API (Presentation Layer)
Kullanıcıdan gelen HTTP isteklerini karşılar.
Swagger, Rate Limiting, CSRF koruması, XSS önlemleri gibi API güvenlik yapılandırmaları buradadır.
AutoStocker.Application (Service Layer / İş Akışı)
İş mantığı ve iş akışlarını içerir.
Servisler, DTO'lar ve iş kuralları burada bulunur.
AutoStocker.Domain (Core Business Layer)
Entity, ValueObject, Enum ve Interface tanımlamaları burada yer alır.
Sistemin kurallarını tanımlayan ana yapı.
AutoStocker.Infrastructure (Persistence & API Client Layer)
Veritabanı bağlantısı, dış API erişimi, caching gibi teknik detaylar burada.
EF Core, InMemory, veya dosya tabanlı veri erişimleri buraya yazılır.
Fake Store API gibi dış kaynaklara ulaşan servislerin implemantasyonları burada.
ExceptionHandler API'de oluşabilecek hataları merkezi olarak yakalar ve uygun HTTP cevaplarını döner. ExceptionHandlingMiddleware ile pipeline'a eklendi. Kullanım örneği: Product/GetCsrfToken 'da ArgumentNullException ile yapıldı.
Proje açıklaması ve nasıl çalıştığı: Api, Kullanıcıdan gelen istekleri alır ve Application katmanındaki servisleri çağırır. Application katmanı, Domain Katmanındaki repository arayüzleri (IProductRepository, IOrderRepository) ile veri katmanına erişir. Domain katmanı Diğer katmanları tanımaz, erişemez.Buy katmanda implementasyon yoktur, sadece interface tanımlamaları bulunur. Infrastructure InMemoryProductRepository, InMemoryOrderRepository gibi repository implementasyonları içerir Dış servisleri soyutlayan interface’leri (IFakeStoreClient) kullanır. FakeStoreClient ile dış API'den ürün verisi çeker.