Bu proje, .NET 9 ile geliştirilmiş, modern ve modüler bir Web API mimari şablonudur. Vertical Slice Architecture (Dikey Dilim Mimarisi) yaklaşımını; modern .NET ekosistemi ile harmanlayarak, yeni nesil web uygulamaları için sağlam ve ölçeklenebilir bir temel sağlar.
Vertical Slice Architecture, klasik katmanlı mimariden farklı olarak sistemi işlevsel parçalara ayırır. Her özellik kendi diliminde izole çalışır. Örneğin:
CreateCategory
özelliği kendi içinde şu yapıları barındırır:
📁 Features/Categories/CreateCategory/ ├── 📄 CreateCategoryCommand.cs // Request modeli (Giriş) ├── 📄 CreateCategoryHandler.cs // İş mantığı işleyicisi ├── 📄 CreateCategoryValidator.cs // FluentValidation kuralları ├── 📄 CreateCategoryResponse.cs // Response DTO (Çıkış) └── 📄 CreateCategoryEndpoint.cs // Minimal API endpoint'i
Features klasörü, uygulamadaki her işlevsel özelliğin (örneğin Kategori, Kullanıcı, Ürün) birbirinden izole şekilde, kendi veri modelleri, iş mantığı ve endpoint'leri ile bir bütün olarak tanımlandığı yerdir. Bu yapı, kod tekrarını azaltır ve bağımsız geliştirme/test avantajı sağlar.
REPR(+V) mimari akışına göre organize edilmiştir:
Request → Endpoint → Processor → Response (+Validator)
Aşama | Açıklama |
---|---|
Request | Client'tan gelen veriyi temsil eden Command veya Query sınıfıdır. |
Endpoint | API'nin dış dünyaya açılan kapısıdır. Gelen request burada karşılanır. |
Processor | İş mantığının işlendiği Handler sınıfıdır. CQRS mantığına göre ayrılır. |
Response | İşlem sonucunda client'a dönen veri modelidir. Genellikle DTO’dur. |
Validator (+V) | FluentValidation kullanılarak request’in doğrulandığı yerdir. |
Teknoloji / Kütüphane | Açıklama |
---|---|
.NET 9 | Güncel .NET sürümü |
Minimal API | Daha sade, hızlı ve fonksiyonel endpoint yapısı |
Entity Framework Core (Code First) | ORM aracı, SQL Server ile birlikte kullanıldı |
FluentValidation | Request doğrulama işlemleri |
Scrutor | Assembly üzerinden otomatik servis kayıtları (DI için) |
OpenAPI / Scalar.AspNetCore | API dokümantasyonu ve Scalar arayüzü |
CQRS (Manual Handler) | Komut ve sorgular için kendi handler yapısı (MediatR yerine) |
Global Exception Handling | Merkezi hata yönetimi ve tutarlı error response'lar |
Bu proje MIT Lisansı ile lisanslanmıştır.