public static IServiceCollection AddSwagger(this IServiceCollection services, Action <SwaggerOptions> configure) { services.Configure(configure); var options = new SwaggerOptions(); configure?.Invoke(options); services.AddSwaggerGen(setup => { var xmlDocsFileName = $"{PlatformServices.Default.Application.ApplicationName}.xml"; var xmlDocsFullPath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, xmlDocsFileName); if (File.Exists(xmlDocsFullPath)) { setup.IncludeXmlComments(xmlDocsFileName, true); } foreach (var server in options.Servers) { setup.AddServer(new OpenApiServer() { Url = server }); } setup.SwaggerDoc(_assemblyVersion, new OpenApiInfo { Title = _assemblyName, Version = _assemblyVersion }); setup.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Description = @"JWT Authorization header using the Bearer scheme. Example: 'Bearer eyJhbGciPSA...'", Name = "Authorization", Scheme = "Bearer", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); }); return(services); }
public static IServiceCollection AddSwagger(this IServiceCollection services, SwaggerOptions options) { return(services.AddSwagger(configure => { options.CopyTo(configure); })); }