Общий базовый класс ApiController с Swagger - PullRequest
0 голосов
/ 03 октября 2018

Итак, я реализовал свое первое приложение REST API, и все работает нормально, включая Swagger (я использовал Swashbuckle и могу тестировать свои API)

В документации, которую я прочитал, "... Контроллер должен расширяться от ApiController ... ".Я понимаю.Однако как буквально я должен принять это утверждение?Я хотел избежать репликации кода в каждом из моих ApiController расширений.Например, у меня есть два контроллера - ProductController и DeviceController - оба из которых расширяют ApiController.Я создал класс BaseController, расширяющий ApiController.Затем я изменил базовый класс для Контроллера продукта и Контроллера устройства на Базовый контроллер

public class BaseController : ApiController
{
}

public class ProductController : BaseController // ApiController
{
}

public class DeviceController : BaseController // ApiController
{
}

1) В приложении Swagger возникла ошибка, как только я нажал на URL / swagger.2) Я действительно не хочу, чтобы мой BaseController даже обслуживал любые запросы.Все, что я хочу, - это иметь общие вспомогательные методы, которые я могу использовать во всех своих контроллерах, такие как ProductController и DeviceController.

Любой совет приветствуется.

1 Ответ

0 голосов
/ 03 октября 2018

Попробуйте использовать аннотацию @ApiIgnore на уровне контроллера.

   [ApiExplorerSettings(IgnoreApi = true)]
    public class BaseController : ApiController
    {
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...