59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
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<string>(), 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"
|
|
};
|
|
};
|
|
});
|
|
}
|
|
}
|
|
} |