因此,我实现了我的第一个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
。
任何建议表示赞赏。
答案 0 :(得分:0)
尝试在控制器级别使用@ApiIgnore批注。
[ApiExplorerSettings(IgnoreApi = true)]
public class BaseController : ApiController
{
}
答案 1 :(得分:0)
就我而言,[ApiExplorerSettings(IgnoreApi = true)]
还会删除所有继承控制器。
我必须使用 [NonAction]
过滤器标记基本控制器中的方法,如下所述:https://stackoverflow.com/a/63845979/218408
点网 5