NSwag.AspNetCore) ile üretilir. İki ayrı görüntüleyici sunulur: klasik Swagger UI ve modern Scalar (Scalar.AspNetCore). OpenAPI dökümanı builder.Services.AddOpenApiDocument(...) ile yapılandırılır (Program.cs).
Üç security scheme
Swagger dökümanına üç güvenlik şeması eklenir. Her endpoint’e üçü de otomatik uygulanır (AspNetCoreOperationSecurityScopeProcessor):
Her iki Keycloak scheme’i, ilgili realm’in
protocol/openid-connect/auth ve token endpoint’lerini kullanır. URL’ler config’ten okunur:
PublicBaseUrl, tarayıcının (Swagger UI’ı açan istemci) ulaşabileceği adrestir. Docker dev’de API container’ı Keycloak’a http://diyanet-keycloak:8080 ile bağlanır ama tarayıcı http://localhost:8080’e gider — bu yüzden Swagger URL’lerinde PublicBaseUrl (external) kullanılır, BaseUrl (internal) değil.Swagger üzerinden Keycloak login
Swagger UI’daki Authorize butonu, PKCE ile doğrudan Keycloak login sayfasını açacak şekilde önyapılandırılmıştır:KeycloakVatandas scheme’ini ayrıca authorize et. Keycloak realm provisioning, Swagger redirect URI’larını (http://localhost:5005/swagger/oauth2-redirect.html vb.) client’a ekler.
Ortama göre erişim
Dev’de erişim (host port
5005):
IgnoreNonPublicSchemaProcessor (SeedWork/NSwag/) yalnızca public property’lerin şemaya dahil edilmesini sağlar — internal/private alanlar OpenAPI çıktısına sızmaz.SPA’larda client üretimi
Her iki SPA, NSwag CLI’ı ile typed Axios client üretir.npm run generate-api script’i (package.json):
src/lib/api-client.ts’e yazılır.
Sonraki adımlar
Controller'lar
Endpoint’ler ve ProblemDetails hata yanıtları.
Frontend SPA'lar
Üretilen client’ın axios instance’a bağlanması.
Keycloak
Çift realm, OAuth2 + PKCE detayları.
API genel bakış
NSwag kayıt sırası ve pipeline.