У меня есть контроллер «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);
}
}