我已将.net webapi帮助页面nuget项目添加到我们的webapi以生成帮助文档。
我在命令行中添加如下内容;
安装包Microsoft.AspNet.WebApi.HelpPage
安装了当前版本。然后我将webapi项目的输出设置为输出到
的App_Data / XmlDocument.xml
这是以下示例;
这是正常的。
然后我没有评论该行;
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
再次按照链接。
然而,当我运行我的api并导航到webapi / help url时。返回的模型是null? (似乎没有错误被抛出)。
然后我显示了布局的标题,但没有api文档?
要添加的一件事是我在这个api中使用OAuth。 (虽然它解决了这条路线会导致任何问题吗?)作为参考,这是我的startup.cs
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
LoggingConfig.RegisterLogger();
config.DependencyResolver = new UnityDependencyResolver(
UnityConfig.GetConfiguredContainer());
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
app.UseWebApi(config);
AreaRegistration.RegisterAllAreas();
}
答案 0 :(得分:0)
确定,
我设法对它进行排序,这是因为正在使用Startup.cs。
因此我需要将其更改为使用Startup.HttpConfiguration
而不是GlobalConfiguration.Configuration
继承我更新的Startup.cs
public static HttpConfiguration HttpConfiguration { get; private set; }
public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get; private set; }
public void Configuration(IAppBuilder app)
{
HttpConfiguration = new HttpConfiguration();
LoggingConfig.RegisterLogger();
HttpConfiguration.DependencyResolver = new UnityDependencyResolver(
UnityConfig.GetConfiguredContainer());
ConfigureOAuth(app);
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(HttpConfiguration);
app.UseCors(CorsOptions.AllowAll);
app.UseWebApi(HttpConfiguration);
}
然后我必须修改以下帮助文件;
HelpPageAreaRegistration.RegisterArea
具体而言,是;
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HelpPage_Default",
"Help/{action}/{apiId}",
new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
HelpPageConfig.Register(Startup.HttpConfiguration);
}
和
HelpController.cs
public HelpController()
: this(Startup.HttpConfiguration)
{
}
希望这有助于某人。