Skip to main content
API tek bir .NET 10 projesidir: src/DiyanetCleanArchitecture.API. Tüm servis kayıtları ve HTTP pipeline’ı Program.cs içinde elle (minimal API host) kurulur. Bu sayfa kayıt sırasını ve middleware sırasını birebir gösterir — her ikisi de kritiktir, sıra bozulursa uygulama sessizce yanlış çalışır.

Servis kayıt sırası (builder.Services)

Program.Main içinde servisler şu sırayla kaydedilir. Sıra, bazı bileşenler için zorunludur (aşağıda işaretli).
Cache kayıt sırası kritik. AddRedisCache (IDistributedCache) mutlaka AddHybridCache’ten önce gelmelidir. HybridCache kayıt anında bir IDistributedCache bulamazsa kalıcı olarak L1-only (memory) moduna düşer ve sonradan eklenen Redis’i hiç görmez — yani Redis’e hiçbir zaman yazmaz.
Bu blokların ardından RBAC, CORS ve sunum servisleri gelir:
  • RBAC AuthorizationDynamicPermissionPolicyProvider (singleton), PermissionAuthorizationHandler, ScopeAuthorizationHandler, ActiveAccountAuthorizationHandler; ICurrentUser / ICurrentCitizen / ICurrentTenant / ICurrentActor; ApiCompositeClaimsTransformation. Üç named policy: PersonelAuthenticated, VatandasAuthenticated, AnyKeycloakAuthenticated.
  • CORS — beş policy: AllowedBackofficePolicy, AllowedPublicPolicy, AllowedWebsitePolicy, AllowedDiyanetCleanArchitectureAPIPolicy, AllowAll. Origin’ler AllowedCorsOrigins:* config’inden okunur (yoksa exception fırlatılır).
  • AddControllers() (camelCase JSON), AddOutputCache(), ProblemDetails (Hellang), NSwag (AddOpenApiDocument), RequestLocalization (tr-TR).

Middleware pipeline sırası (app)

UseProblemDetails Routing’den önce çağrılır — pipeline’ın herhangi bir yerinde oluşan exception’lar yakalanır. UseTokenVersionValidation Authentication ile Authorization arasına girer: token’ın TokenVersion claim’i kullanıcının güncel versiyonuyla eşleşmezse (örn. rol değişti) istek reddedilir. Bu, RBAC değişikliğinin anında etki etmesini sağlar.

Ortama göre değişen davranış

Sonraki adımlar

Controller deseni

İnce controller’lar, base class’lar, ProblemDetails hata yanıtları.

OpenAPI / Swagger

NSwag, üç security scheme, Scalar, client üretimi.

Frontend SPA'lar

React 19 + Vite, axios interceptor, Keycloak entegrasyonu.

Gözlemlenebilirlik

Serilog → Seq, Prometheus /metrics, health endpoint’leri.