Search code examples
c#restasp.net-web-apiasp.net-web-api-helppages

WebAPI Help Pages: disable for Production release


I have developed a number of internal REST interfaces using the older WCF framework in VS 2010. The ability for it to generate help pages was handy for DEV and QA platforms, but for a production release it was easy to disable the generation of these help pages in the web.config file:

<standardEndpoint name="" helpEnabled="false" automaticFormatSelectionEnabled="true"/>

I am now moving on to use the WebAPI framework instead (currently version 1 on VS 2012), but it doesn't appear to be as trivial to turn this feature off (i.e. I can't find any information on how to do this in a web.config file).

Certainly I can go ahead and do this by hand within the code itself, but surely there's an easier way; something akin to how WCF did it as described above. I'd like to use the web.config file approach since I already have the web.release.config transform files in place for other settings.

Any thoughts on best practices on this would be appreciated.


Solution

  • Web API doesn't have an out of box support with respect to web.config based enabling or disabling of helppage.

    Some options you can consider:

    • Since HelpPage is installed as an MVC area, when deploying to production you could just exclude this HelpPage folder.

    • Create an action filter which returns 404 as suggested here: Conditionally disable ASP.NET MVC Controller

    NOTE: for the above cases, if you are using the default Web API template, then yeah you would need additional step of display/not display the Help link from the navigation bar.