I'm currently going through the process of upgrading from 2.2 to 3.1.
In doing so .NET's default api-versioner is running along side ours despite adding the code to remove this:
Is there a new way to register a custom versioner or is there a new approach to removing .NET's default one after calling 'AddApiVersioning'.
services.AddControllers(opts =>
{
opts.Filters.Add<DatedApiVersionFilter>();
});
// add standard asp.net core versioning mechanism
services.AddApiVersioning(o =>
{
o.ApiVersionReader = new HeaderApiVersionReader(PlatformVersioningOptions.VersionHeaderName);
o.DefaultApiVersion = new ApiVersionDate(2020, 1, 31);
o.AssumeDefaultVersionWhenUnspecified = true;
});
// removing the default api version policy
services.Remove(services.Single(s => s.ImplementationType == typeof(DefaultApiVersionRoutePolicy)));
services.TryAddEnumerable(ServiceDescriptor.Singleton<MatcherPolicy, DatedApiVersionMatcherPolicy>());
services.AddSingleton<IDatedApiVersionResolver, DatedApiVersionResolver>();