using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; namespace APILOL { public class ConfigureSwaggerGenOptions : IConfigureOptions { private readonly IApiVersionDescriptionProvider _apiVersionDescriptionProvider; public ConfigureSwaggerGenOptions(IApiVersionDescriptionProvider apiVersionDescriptionProvider) => _apiVersionDescriptionProvider = apiVersionDescriptionProvider; public void Configure(SwaggerGenOptions options) { foreach (var description in _apiVersionDescriptionProvider.ApiVersionDescriptions) { options.SwaggerDoc(description.GroupName, CreateOpenApiInfo(description)); } } private static OpenApiInfo CreateOpenApiInfo(ApiVersionDescription description) { var info = new OpenApiInfo() { Title = "LSE.Stocks.API", Version = description.ApiVersion.ToString() }; if (description.IsDeprecated) { info.Description += " (deprecated)"; } return info; } } }