So i implemented my first REST API application and everything is working fine, including Swagger (I used Swashbuckle and can test my APIs)
In the documentation I read, "...Controller must extend from ApiController
...". I get that. However, how literally should I take that statement? What I wanted to do is avoid replication of code in each of my ApiController
extensions. For instance I have two controllers - ProductController
and DeviceController
- both of which extend ApiController
. I created class BaseController
extending ApiController
. Then I changed base class for both Product Controller and Device Controller to Base Controller
public class BaseController : ApiController
{
}
public class ProductController : BaseController // ApiController
{
}
public class DeviceController : BaseController // ApiController
{
}
1) Swagger application has error as soon as I hit the /swagger URL.
2) I really don't want my BaseController
to even serve any requests. All I want is to have common helper methods I can use in all of my controllers such as ProductController
and DeviceController
.
Any advice appreciated.
In my case
[ApiExplorerSettings(IgnoreApi = true)]
also removes all inhering controllers.I had to mark the methods in the base controller with the
[NonAction]
filter as described here: https://stackoverflow.com/a/63845979/218408Dotnet 5