Member 8647646 Ответов: 0

Как реализовать управление версиями пользовательских заголовков на уровне контроллера с наследованием?


У меня есть ниже структура контроллера -
1. ValuesController : Controller
2. ValuesV2Controller : ValuesController 
3. ValuesV3Controller : ValuesV2Controller 
4. ValuesV4Controller : ValuesV3Controller
Все контроллеры имеют один общий метод Get(Type value); для получения конкретной записи. Тип значения отличается в каждом контроллере.

Я реализовал управление версиями в ASP.NET основные веб-API с Microsoft.AspNetCore.Mvc.Versioning Nugget.

В startup > Configure services; входит приведенный ниже набор кода :
services.AddApiVersioning(o =>
        {
            o.ApiVersionReader = new HeaderApiVersionReader("x-lz-api- 
version");
            o.DefaultApiVersion = new ApiVersion(1, 0);
            o.ReportApiVersions = true;
            o.AssumeDefaultVersionWhenUnspecified = true;
         });
Когда мы вызываем api V1, V2, V3, то это дает 500 не найденных ошибок, особенно для управления версиями, выполняемых с пользовательским заголовком.

Опробованы ниже возможные решения: 1. Создание виртуального базового класса и переопределение производных классов от них, но поскольку тип отличается, это не работает. 2. Эта проблема не возникает для управления версиями URL-адресов, это очень специфично для пользовательского управления версиями заголовков.

Что я уже пробовал:

Опробованы ниже возможные решения:
1. Создание виртуального базового класса и переопределение производных классов от них, но поскольку тип отличается, это не работает.
2. Эта проблема не возникает для управления версиями URL-адресов, это очень специфично для пользовательского управления версиями заголовков.

0 Ответов