0

所以我实现了我的第一个 REST API 应用程序,一切正常,包括 Swagger(我使用了 Swashbuckle 并且可以测试我的 API)

在我阅读的文档中,“......控制器必须从......扩展ApiController”。我明白了。但是,我应该如何理解这种说法?我想要做的是避免在我的每个ApiController扩展中复制代码。例如,我有两个控制器 -ProductController并且DeviceController- 两者都 extend ApiController。我创建了BaseController扩展类ApiController。然后我将产品控制器和设备控制器的基类更改为基本控制器

public class BaseController : ApiController
{
}

public class ProductController : BaseController // ApiController
{
}

public class DeviceController : BaseController // ApiController
{
}

1) 一旦我点击 /swagger URL,Swagger 应用程序就会出错。2)我真的不希望我BaseController什至满足任何请求。我想要的只是拥有可以在所有控制器中使用的通用辅助方法,例如ProductControllerDeviceController

任何建议表示赞赏。

4

2 回答 2

1

尝试在控制器级别使用 @ApiIgnore 注释。

   [ApiExplorerSettings(IgnoreApi = true)]
    public class BaseController : ApiController
    {
    }
于 2018-10-03T09:59:41.137 回答
0

在我的情况下,[ApiExplorerSettings(IgnoreApi = true)]还删除了所有继承控制器。

[NonAction]我必须使用此处描述的过滤器标记基本控制器中的方法: https ://stackoverflow.com/a/63845979/218408

点网 5

于 2021-04-25T19:43:58.567 回答