.NET › API Versioning
How do you version an API's OpenAPI/Swagger documentation to show separate docs per version?
IntermediateAnswer
Using Swashbuckle or NSwag together with the versioning library's IApiVersionDescriptionProvider, you can generate a separate OpenAPI document per registered API version, configuring Swagger UI to expose a dropdown letting consumers switch between documented versions (e.g., /swagger/v1/swagger.json and /swagger/v2/swagger.json).
builder.Services.AddSwaggerGen();
builder.Services.ConfigureOptions<ConfigureSwaggerOptions>();
app.UseSwaggerUI(options => {
foreach (var description in provider.ApiVersionDescriptions)
options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
});Real-world example An API's public developer portal shows a version dropdown in Swagger UI, letting third-party integrators explore both the current v2 and the still-supported legacy v1 documentation side by side.