Невозможно создать swagger.json с пользовательским базовым контроллером - PullRequest
0 голосов
/ 01 июля 2019

У меня есть контроллер «SampleController», который использует «MyControllerBase» (из пакета NuGet) в качестве базового класса.

Я пытаюсь добавить документацию API, используя swagger, но swagger не может получить 'SampleController', поэтому не может создать swagger.json.

Я получаю сообщение об ошибке "Получить ошибку: /swagger/v1/swagger.json"

MyControllerBase наследует ControllerBase, поэтому SampleController работает так, как должен работать API.

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

Из пакета Nuget:

namespace My.ApiFormatter.Controller
{
  public abstract class MyControllerBase<T> : ControllerBase, IFilterableController
  {
    public virtual Dictionary<string, IFilterMapper> FilterWhitelist => new Dictionary<string, IFilterMapper>();
  }
}

Реализация:

  [Route("api/[controller]")]
  [ApiController]
  public class SampleController : MyControllerBase<ExampleData>
  {
    [HttpGet]
    public override ActionResult<CollectionEnvelope<ExampleData>> GetAll()
    {
      var results = ExampleDatas
        .Where(x => x.Key > (Info.PageSize * Info.SkipPages)
            && x.Key <= (Info.PageSize * (Info.SkipPages + 1)))
        .Select(y => y.Value).ToList();

      var collectionEnvelope = GetCollectionEnvelope(results, ExampleDatas.Count);
      return Ok(collectionEnvelope);
    }
  }

Error In Swagger

...