42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
using Microsoft.OpenApi.Models;
|
|
|
|
namespace API.Extensions
|
|
{
|
|
public static class SwaggerServiceExtensions
|
|
{
|
|
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services)
|
|
{
|
|
services.AddSwaggerGen(c =>
|
|
{
|
|
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);
|
|
});
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IApplicationBuilder UseSwaggerDocumentation(this IApplicationBuilder app)
|
|
{
|
|
app.UseSwagger();
|
|
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPIv5 v1"));
|
|
|
|
return app;
|
|
}
|
|
}
|
|
} |