0

使用web api 2开始一个新项目,我们希望将它自己的API与MVC页面分开,其中包含自动生成的API文档。不同项目中的Web api 2和api帮助

我的方法是创建一个空web API项目并创建我的控制器。然后我创建了另一个类型为web api的项目(相同的解决方案),但是这次我包含了MVC部分。 然后我从MVC项目中删除了Web API控制器(因为我只希望它用于文档)并且包含对API项目的引用。

这工作(几乎)完美,api项目公开资源和MVC项目显示端点的自动生成的文档。

现在问题来了:因为我们在MVCproject中包含了api项目,MVC项目也自动公开了端点,这是绝对不需要的,需要删除,我尝试删除GlobalConfiguration.Configure(WebApiConfig.Register );从global.asax中的application_start,现在终端不公开(根据需要),但不生成文档。

有人想过如何克服这个问题吗?肯定其他人一直想要相同的分离...

+0

所以...总结....我需要的是禁用MVC项目上的所有端点... – iCediCe

回答

1

您可以创建一个全局过滤器,并且如果请求是针对mvc端点,您可以重定向到api文档端点。

+0

不是一个坏主意,但寻求不同的解决方案。 – iCediCe

0

为了让一切都变得简单,我们选择了一个不同的解决方案,在我们的构建中的后脚本会触发一个外部exe文件,该文件为api生成静态html页面。 使用的程序可以在这里找到:https://code.msdn.microsoft.com/Design-time-help-page-3048fb43

这样我们得到了一个很好的干净的解决方案,无需旋转完整的MVC,但仍然与自动生成的API文件。

该程序并不完全符合我们的需求,但幸运的是源代码可用,所以我只是根据我们的需求进行了定制。