Sky.Net/API/Extensions/SwaggerServiceExtensions.cs

42 lines
1.5 KiB
C#
Raw Normal View History

2022-05-11 13:18:34 -07:00
using Microsoft.OpenApi.Models;
namespace API.Extensions
{
public static class SwaggerServiceExtensions
{
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
2022-05-20 11:09:24 -07:00
c.SwaggerDoc("v1", new OpenApiInfo { Title = "SkitNet API", Version = "v1" });
var securitySchema = new OpenApiSecurityScheme
{
Description = "JWT Auth Bearer Scheme",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = "bearer",
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
};
c.AddSecurityDefinition("Bearer", securitySchema);
var securityRequirements = new OpenApiSecurityRequirement {{securitySchema, new[]{"Bearer"}}};
c.AddSecurityRequirement(securityRequirements);
2022-05-11 13:18:34 -07:00
});
return services;
}
public static IApplicationBuilder UseSwaggerDocumentation(this IApplicationBuilder app)
{
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPIv5 v1"));
return app;
}
}
}