using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.PlatformAbstractions; using NSwag; using NSwag.Generation.Processors.Security; using System.Linq; namespace StaffDBServer.SharedExtensions { public static class ServiceSwaggerExtensions { public static void ConfigureSwagger(this IApplicationBuilder app) { app.UseSwaggerUi(cfg => cfg.DocExpansion = "none" //"list" ); } public static void ConfigureSwagger(this IServiceCollection services) { services.AddSwaggerDocument(config => { #region add Bearer Authorization config.AddSecurity("JWT", Enumerable.Empty(), new OpenApiSecurityScheme { Type = OpenApiSecuritySchemeType.ApiKey, Name = "Authorization", In = OpenApiSecurityApiKeyLocation.Header, Description = "Bearer JWT token." }); config.OperationProcessors.Add( new AspNetCoreOperationSecurityScopeProcessor("JWT")); #endregion add Bearer Authorization config.PostProcess = document => { document.Info.Version = "V." + PlatformServices.Default.Application.ApplicationVersion + "; " + PlatformServices.Default.Application.RuntimeFramework; document.Info.Title = $" {PlatformServices.Default.Application.ApplicationName} API"; document.Info.Description = $" {PlatformServices.Default.Application.ApplicationName} Backend "; document.Info.TermsOfService = "None"; document.Info.Contact = new NSwag.OpenApiContact { Name = "IT", Email = string.Empty, Url = "https://hensel-recycling.com" }; document.Info.License = new NSwag.OpenApiLicense { Name = "Commercial License", Url = "https://hensel-recycling.com" }; }; }); } } }