diff --git a/backend/Directory.Packages.props b/backend/Directory.Packages.props index 7da68cc..64c8bfc 100644 --- a/backend/Directory.Packages.props +++ b/backend/Directory.Packages.props @@ -18,8 +18,8 @@ + - diff --git a/backend/src/Tnsu.ApprovalRoute.Api/Program.cs b/backend/src/Tnsu.ApprovalRoute.Api/Program.cs index 27106b6..fef508c 100644 --- a/backend/src/Tnsu.ApprovalRoute.Api/Program.cs +++ b/backend/src/Tnsu.ApprovalRoute.Api/Program.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.OpenApi; +using Scalar.AspNetCore; using Tnsu.ApprovalRoute.Api.Auth; using Tnsu.ApprovalRoute.Api.Filters; using Tnsu.ApprovalRoute.Application; @@ -53,12 +54,15 @@ var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.MapOpenApi(); - app.UseSwaggerUI(c => + + // Scalar API reference UI — нативно понимает документ MapOpenApi (включая securitySchemes/security) + // и корректно прикрепляет Bearer-токен к запросам. + app.MapScalarApiReference(options => { - c.SwaggerEndpoint("/openapi/v1.json", "Tnsu Approval Route v1"); - c.RoutePrefix = string.Empty; - c.ConfigObject.AdditionalItems["persistAuthorization"] = true; - c.EnableTryItOutByDefault(); + options + .WithTitle("Tnsu Approval Route") + .AddPreferredSecuritySchemes("Bearer") + .AddHttpAuthentication("Bearer", _ => { }); }); } diff --git a/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj b/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj index a941843..da2a380 100644 --- a/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj +++ b/backend/src/Tnsu.ApprovalRoute.Api/Tnsu.ApprovalRoute.Api.csproj @@ -11,6 +11,6 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - +