我有一个控制器,例如“ SampleController”,它使用“ MyControllerBase”(来自NuGet包)作为基类。
我正在尝试使用swagger添加API文档,但是swagger无法获取'SampleController',因此无法创建swagger.json。
我收到错误“获取错误:/swagger/v1/swagger.json”
'MyControllerBase'继承了'ControllerBase',因此'SampleController'正在作为API工作。
我如何告诉挥舞者使用'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);
}
}
答案 0 :(得分:0)
Swagger只会将方法作为基类中的控制器。您可能会收到错误,因为swagger认为任何公共方法都是端点。设置不受端点保护的方法和属性