目前在做WepApi的项目,发现添加注释后还是不能显示在页面中,于是默默的查询了一些资料得到如下结论:
在Web API项目目录里有一个Area,里面有个HelpPage文件夹,这里面放的都是HelpPage生成器的代码、页面模版和配置文件。
在不做任何更改的情况下,你的WebAPI项目现在就已经具有基本的生成文档的功能了。
浏览/Help,即Areas.HelpPage.Controllers.HelpController的Index() Action,就能看到自动生成的API文档:
你们可能注意到,我的表格里“Description”字段是有内容的,而你们自己的是木有的。这个其实是需要额外去配置的。
这个Description的内容所使用的其实是代码里方法的注释,即/// <summary>形式的注释。如果你有撸过类库的经验,你会知道这些东西是可以生成XML的,许多文档生成器都要使用这份XML作为metadata的来源。
在我们的网站里,这样的metadata信息通常应该放在App_Data文件夹里,而不是默认的bin目录里。所以我们要对Web API的项目属性做一些更改。
打开项目属性,在Build页面里,勾选XML documentation file,并把他它撸到App_Data下面:
然后打开Areas\HelpPage\App_Start下的HelpPageConfig.cs
取消Register方法中第一段代码的注释,并且把XML文件的路径改成刚才在刚才在项目属性页里设置的路径。
public static void Register(HttpConfiguration config) { // Uncomment the following to use the documentation from XML documentation file. config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/PatientView.Service.WebAPI.xml"))); ... }
现在,如果你在API方法上写三斜杠的注释,就会被生成在网页上。
/// <summary> /// 病区列表 /// </summary> /// <returns></returns> [Route("GetLocationUnits")] public Response<List<LocationUnitModel>> GetLocationUnits() { return TryResponse(() => _operatorBll.GetLocationUnits(), method: "GetLocationUnits"); }
转自:http://edi.wang/post/2013/10/28/auto-generate-help-document-aspnet-webapi