using Asp.Versioning.ApiExplorer; using Microsoft.Extensions.Options; using Microsoft.OpenApi; using Swashbuckle.AspNetCore.SwaggerGen; namespace ApiVersioningDemo.Api; public class ConfigureSwaggerOptions : IConfigureOptions { private readonly IApiVersionDescriptionProvider _provider; public ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) { _provider = provider; } public void Configure(SwaggerGenOptions options) { // Por cada versión de API detectada, crea un documento Swagger foreach (var description in _provider.ApiVersionDescriptions) { options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description)); } } private static OpenApiInfo CreateInfoForApiVersion(ApiVersionDescription description) { var info = new OpenApiInfo() { Title = "Mi API Versionada", Version = description.ApiVersion.ToString(), Description = "Ejemplo de API REST con versionado en .NET" }; if (description.IsDeprecated) { info.Description += " (Esta versión está obsoleta)"; } return info; } }