public static IApplicationBuilder UseSwagger(this IApplicationBuilder builder, IConfiguration configuration, SwaggerConfigurations settings) { builder.UseSwagger(); builder.UseSwaggerUI(options => { options.SwaggerEndpoint(settings.GetEndpointUri(), settings.Title); options.OAuthAppName(settings.AuthAppName); options.OAuthClientId(settings.ClientId); options.OAuthClientSecret(settings.Secret); if (settings.UsePkce) { options.OAuthUsePkce(); } }); return(builder); }
public AuthorizeCheckOperationFilter(IConfiguration configuration) { this._configurations = configuration.GetConfigurations <SwaggerConfigurations>("Swagger"); }
public static IServiceCollection AddSwagger(this IServiceCollection services, SwaggerConfigurations configurations) { services.AddSwaggerGen(setup => { setup.SwaggerDoc(configurations.Version, configurations.ToOpenApi()); foreach (var file in Directory.GetFiles(configurations.DocumentationPath, configurations.DocumentationPattern)) { setup.IncludeXmlComments(file, configurations.IncludeControllerXmlComments); } if (configurations.UseSecurity) { setup.OperationFilter <AuthorizeCheckOperationFilter>(); setup.AddSecurityDefinition(configurations.SecurityDefinitions.Scheme, configurations.SecurityDefinitions.ToOpenApi()); setup.AddSecurityRequirement(configurations.SecurityRequeriment.ToOpenApi()); } }); services.AddSwaggerGenNewtonsoftSupport(); return(services); }