.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).
- RBAC Authorization —
DynamicPermissionPolicyProvider(singleton),PermissionAuthorizationHandler,ScopeAuthorizationHandler,ActiveAccountAuthorizationHandler;ICurrentUser/ICurrentCitizen/ICurrentTenant/ICurrentActor;ApiCompositeClaimsTransformation. Üç named policy:PersonelAuthenticated,VatandasAuthenticated,AnyKeycloakAuthenticated. - CORS — beş policy:
AllowedBackofficePolicy,AllowedPublicPolicy,AllowedWebsitePolicy,AllowedDiyanetCleanArchitectureAPIPolicy,AllowAll. Origin’lerAllowedCorsOrigins:*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.