轉自:http://edi.wang/post/2013/10/28/auto-generate-help-document-aspnet-webapi
我選擇Web API的一個重要原因就是因為可以自動生成文檔,省去了開發人猿不少寶貴的時間。以前在用Web API第一代的時候,自動生成幫助文檔的功能默認是不完整的,現在到了Web API 2,這個功能已經通過NuGet包的形式很好的整合到了一起。我們來看一下吧!
首先,用VS2013創建的Web API 2項目會默認帶有Microsoft ASP.NET Web API Help Page的包。如果沒有,就需要手動去NuGet上安裝。
在安裝了這個包以后,你的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方法上寫三斜杠的注釋,就會被生成在網頁上。