Good medium article https://medium.com/c-sharp-progarmming/xml-comments-swagger-net-core-a390942d3329
-
This package was renamed from OLT.Extensions.SwaggerGen to OLT.Extensions.SwaggerGen.Versioning due to combining it with OLT.AspNetCore.Versioning
-
The namespace shifted from OLT.Extensions.SwaggerGen to OLT.Extensions.SwaggerGen.Versioning
public class Startup
{
public Startup(IConfiguration configuration, IWebHostEnvironment hostEnvironment)
{
Configuration = configuration;
HostEnvironment = hostEnvironment;
}
public IConfiguration Configuration { get; }
public IWebHostEnvironment HostEnvironment { get; }
public void ConfigureServices(IServiceCollection services)
{
var xmlPath = Path.Combine(AppContext.BaseDirectory, $"{Assembly.GetExecutingAssembly().GetName().Name}.xml");
var enableSwagger = System.Diagnostics.Debugger.IsAttached || HostEnvironment.IsDevelopment();
...
services.AddSwaggerWithVersioning(
new OltSwaggerArgs(new OltOptionsApiVersion())
.WithTitle(Title)
.WithDescription(Description)
.WithSecurityScheme(new OltSwaggerJwtBearerToken()) // Allow JWT Token to be passed via the Swagger UI
.WithSecurityScheme(new OltSwaggerApiKey()) // Allow X-API-KEY to be passed via the Swagger UI
.WithOperationFilter(new OltDefaultValueFilter())
.WithApiContact(new Microsoft.OpenApi.Models.OpenApiContact { Name = "John Doe", Url = new System.Uri("https://www.nuget.org/"), Email = "[email protected]" })
.WithApiLicense(new Microsoft.OpenApi.Models.OpenApiLicense { Name = "License Here", Url = new System.Uri("https://www.google.com/") })
.WithXmlComments(xmlPath) //Enabling XML comments is required for this to function
.Enable(enableSwagger);
...
}
public void Configure(IApplicationBuilder app)
{
...
app.UseSwaggerWithVersioning();
...
}
}