__Scenario__:
User does not like to show up a controller on HelpPage (ex: EntitySetController in OData), so he would like to use setting like [ApiExplorerSettings(IgnoreApi=true)] on the controller.
__Issue__:
When AR is used, [ApiExplorerSettings(IgnoreApi=true)] on the controller is not being honored and HelpPage shows the controller. This is however not a problem when conventional routing is used though.
__Reason__:
With latest checkin related to bug # 1125, when ApiExplorer tries to generate descriptions it goes through different path for AR generated routes than conventional routes.
__Workarounds__:
1. A user could set [ApiExplorerSettings(IgnoreApi=true)] on each individual action which can make the whole controller to not show up.
2. A custom ApiExplorer deriving from the default and overriding the method "public override bool ShouldExploreAction(string actionVariableValue, HttpActionDescriptor actionDescriptor, IHttpRoute route)". This method would get called for every action that is going to be explored. One could check the controller name type from the supplied action descriptor and return 'false' for the ones not interested.
Attached a standalone katana selfhost repro.
Expected: "api descriptions count: 0"
Actual: "api descriptions count: 1"
Comments: Verified.
User does not like to show up a controller on HelpPage (ex: EntitySetController in OData), so he would like to use setting like [ApiExplorerSettings(IgnoreApi=true)] on the controller.
__Issue__:
When AR is used, [ApiExplorerSettings(IgnoreApi=true)] on the controller is not being honored and HelpPage shows the controller. This is however not a problem when conventional routing is used though.
__Reason__:
With latest checkin related to bug # 1125, when ApiExplorer tries to generate descriptions it goes through different path for AR generated routes than conventional routes.
__Workarounds__:
1. A user could set [ApiExplorerSettings(IgnoreApi=true)] on each individual action which can make the whole controller to not show up.
2. A custom ApiExplorer deriving from the default and overriding the method "public override bool ShouldExploreAction(string actionVariableValue, HttpActionDescriptor actionDescriptor, IHttpRoute route)". This method would get called for every action that is going to be explored. One could check the controller name type from the supplied action descriptor and return 'false' for the ones not interested.
Attached a standalone katana selfhost repro.
Expected: "api descriptions count: 0"
Actual: "api descriptions count: 1"
Comments: Verified.