Skip to content

ASP.NET Core Web API tabanlı, Clean Architecture prensiplerine göre tasarlanmış bir Todo uygulaması.

License

Notifications You must be signed in to change notification settings

spsofme/TodoApi

Repository files navigation

TodoApi

ASP.NET Core Web API tabanlı, Clean Architecture prensiplerine göre tasarlanmış bir Todo uygulaması.

Mimari

Proje Clean Architecture (Temiz Mimari) prensiplerine göre katmanlı yapıda organize edilmiştir. Bağımlılıklar her zaman içe doğru akar; dış katmanlar iç katmanları referans alır, iç katmanlar dış katmanları bilmez.

┌────────────────────────────────────────────────────────┐
│                  TodoApi.Presentation                  │ ← API, Controllers, Middleware
├────────────────────────────────────────────────────────┤
│                  TodoApi.Application                   │ ← Use Cases, Services, DTOs
├────────────────────────────────────────────────────────┤
│ TodoApi.Infrastructure │ TodoApi.Shared │ TodoApi.Core │ ← Implementations, Cross-cutting
├────────────────────────────────────────────────────────┤
│                    TodoApi.Domain                      │ ← Entities, Repository Contracts
└────────────────────────────────────────────────────────┘

Katmanlar

TodoApi.Domain

Çekirdek katman. En içte yer alır, hiçbir katmana bağımlı değildir.

  • Entities: Domain modelleri (TodoEntity, UserEntity, EntityBase)
  • Repository Contracts: Veri erişim soyutlamaları (ITodoRepository, IUserRepository)
  • Enums: Domain enum'ları (ETodoStatus)

TodoApi.Application

Uygulama katmanı. İş mantığı ve use case'ler burada tanımlanır.

  • Contracts/ServiceContracts: Servis arayüzleri (IAuthService, IUserService)
  • Services: Servis implementasyonları
  • DTOs: Request/Response veri transfer objeleri
  • Helpers: Token oluşturma gibi yardımcı sınıflar

TodoApi.Infrastructure

Altyapı katmanı. Veri erişimi ve harici sistem entegrasyonları.

  • Persistence: AppDbContext, Entity Framework Core yapılandırması
  • Repositories: Repository implementasyonları (TodoRepository, UserRepository)
  • Configurations/ModelCreatings: EF Core entity konfigürasyonları (Fluent API)

TodoApi.Presentation

Sunum katmanı. HTTP API, giriş noktası.

  • Controllers: API controller'ları
  • Configurations: Uygulama başlangıç konfigürasyonları (Auth, DB, DI, Swagger)
  • Handlers: Exception handling middleware
  • Utils: API response yardımcıları

TodoApi.Core

Ortak altyapı. Konfigürasyon ve sabitler.

  • Configurations: AppSettings, JwtSettings, ConnectionSettings
  • Constants: Uygulama sabitleri
  • Utils: Claim gibi yardımcı araçlar

TodoApi.Shared

Paylaşılan katman. Katmanlar arası ortak tipler.

  • Responses: ServiceResponse, GeneralResponse gibi standart response tipleri
  • ValidationRules: FluentValidation kuralları
  • Enums: Servis yanıt tipleri (EServiceResponseType)

Teknoloji Yığını

Katman Teknolojiler
Framework .NET 8, ASP.NET Core
ORM Entity Framework Core 9
Veritabanı PostgreSQL (Npgsql) / In-Memory (geliştirme)
Kimlik Doğrulama JWT Bearer
Validasyon FluentValidation
API Dokümantasyonu Swagger / OpenAPI

Bağımlılık Akışı

Presentation → Application, Infrastructure, Core, Domain, Shared
Application  → Domain, Shared
Infrastructure → Domain
Core         → (bağımsız)
Shared       → (bağımsız)
Domain       → (bağımsız)

Proje Yapısı

TodoApi/
├── TodoApi.sln
├── TodoApi.Domain/           # Çekirdek domain
├── TodoApi.Application/      # İş mantığı
├── TodoApi.Infrastructure/   # Veri erişimi
├── TodoApi.Presentation/     # Web API
├── TodoApi.Core/             # Ortak konfigürasyon
└── TodoApi.Shared/           # Paylaşılan tipler

Konfigürasyon

Uygulama Program.cs üzerinden modüler konfigürasyon sınıfları ile yapılandırılır:

  • Settings: Ortam değişkenleri ve appsettings yükleme
  • ServiceConfigurations: Genel servis kayıtları
  • DBConfigurations: Entity Framework ve veritabanı
  • AuthConfigurations: JWT kimlik doğrulama
  • SwaggerConfigurations: API dokümantasyonu
  • DIConfigurations: Bağımlılık enjeksiyonu
  • AppConfigurations: Middleware pipeline

Çalıştırma

dotnet restore
dotnet run --project TodoApi.Presentation

About

ASP.NET Core Web API tabanlı, Clean Architecture prensiplerine göre tasarlanmış bir Todo uygulaması.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages