namespace Diligent.WebAPI.Host.Options { public class SwaggerConfigureOptions : IConfigureOptions { private readonly IApiVersionDescriptionProvider _provider; public SwaggerConfigureOptions(IApiVersionDescriptionProvider provider) => _provider = provider; public void Configure(SwaggerGenOptions options) { // add swagger document for every API version discovered foreach (var description in _provider.ApiVersionDescriptions) { options.SwaggerDoc( description.GroupName, CreateVersionInfo(description)); } } public void Configure(string name, SwaggerGenOptions options) { Configure(options); } private OpenApiInfo CreateVersionInfo( ApiVersionDescription description) { var info = new OpenApiInfo() { Title = "Diligent Web API", Version = description.ApiVersion.ToString() }; if (description.IsDeprecated) { info.Description += " This API version has been deprecated."; } return info; } } }