目前在做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