Я реализовал aspnet core api versioning , как описано здесь
, вот пример кода
services.AddApiVersioning(
options =>
{
options.ReportApiVersions = true;
options.DefaultApiVersion = new ApiVersion(0,0);
options.AssumeDefaultVersionWhenUnspecified = true;
} );
services.AddVersionedApiExplorer(
options =>
{
// note: the specified format code will format the version as "'v'major[.minor][-status]"
options.GroupNameFormat = "'v'VVV";
options.SubstituteApiVersionInUrl = true;
} );
Пример контроллера:
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("1")]
public class BreadcrumbsController : BaseController
{
...code removed...
}
Все работает нормально, если я добавляю атрибут [ApiController]
в контроллеры, но если я удаляю его, IApiVersionDescriptionProvider
не возвращает результатов.VersionApiExplorer, похоже, не находит контроллеров.К сожалению, добавление атрибута [ApiController]
переопределяет некоторые фильтры, которые мы реализовали, поэтому я не хочу добавлять его в контроллеры.
Как получить Versioned API Explorer для обнаружения контроллеров без добавления атрибута ApiController?