Вам не нужно указывать такой маршрут, как он уже известен системе управления версиями API.
Прежде всего, вам необходимо настроить управление версиями API, например:
public void ConfigureServices( IServiceCollection services )
{
services.AddMvc();
services.AddApiVersioning(o => o.ApiVersionReader = new HeaderApiVersionReader("api-version"));
//and the rest
}
А затем простая конфигурация:
services.AddApiVersioning(
o =>
{
o.AssumeDefaultVersionWhenUnspecified = true );
o.DefaultApiVersion = new ApiVersion( 1 );
} );
Это создаст версию API по умолчанию и предположит, что если в запросе не указана версия, будет принята версия по умолчанию.
Далееконтроллер должен выглядеть так:
[ApiVersion( "1" )]
[Route( "api/mystuff" )]
public class mystuff1: Controller
{
[HttpGet]
public string Get() => "Mystuff1!";
}
[ApiVersion( "2" )]
[Route( "api/mystuff" )]
public class mystuff2 : Controller
{
[HttpGet]
public string Get() => "Mystuff2!";
}
Затем просто добавьте заголовок к вашему запросу: api-версия: 2
(это делается AddApiVersioning в ConfigureServices).