Please help me with this, it looked easy at first, now I\'m late in the project:
I\'m trying to setup API versioning for a ASP.NET WebApi project, along with Swagger
Solved it by:
Using the versioned API explorer as below (note that I had to move the code from SwaggerConfig.cs in WebApiConfig.cs due to initialization issues):
var apiExplorer = config.AddVersionedApiExplorer(options => {
options.GroupNameFormat = "'v'VVV";
});
var versionSupportResolver = new Func((apiDescription, version) => apiDescription.GetGroupName() == version);
var versionInfoBuilder = new Action(info => {
foreach (var group in apiExplorer.ApiDescriptions)
{
info.Version(group.Name, $"MyAPI v{group.ApiVersion}");
}
});
config
.EnableSwagger("{apiVersion}/swagger", swagger => {
swagger.OperationFilter();
swagger.MultipleApiVersions(versionSupportResolver, versionInfoBuilder);
swagger.IncludeXmlComments(WebApiConfig.XmlCommentsFilePath);
})
.EnableSwaggerUi(swaggerUi => {
swaggerUi.EnableDiscoveryUrlSelector();
swaggerUi.DocExpansion(DocExpansion.List);
});