ASP.NET Web API 2:創建API幫助頁面


     當你新建了一個web API服務之后,再建一個API幫助頁面是很有好處的,這樣其他開發人員就會很清楚地知道如何調用你的API接口。你可以選擇自己手工建立,但是如果能自動生成豈不是更好。為了簡化這項任務, ASP.NET Web API提供了一個在運行時自動生成幫助頁的庫。
 
 
在項目中添加幫助頁,首先使用NuGet安裝Microsoft.AspNet.WebApi.HelpPage庫
 

安裝成功后,啟動項目有可能會報下圖的異常
 
 
引起異常的原因是Microsoft.AspNet.WebApi.HelpPage庫要依賴於如下程序集,如果項目中使用的程序集版本低於它依賴的版本,NuGet就會把這些程序集升級到依賴的版本。升級之后引起了本地程序集和GAC的程序集沖突。
解決該問題的辦法是,在項目的Web.config配置文件中的runtime節點,添加:
< dependentAssembly>
        < assemblyIdentity name = "System.Web.WebPages.Razor " publicKeyToken =" 31bf3856ad364e35 "/>
        < bindingRedirect oldVersion = "1.0.0.0-3.0.0.0 " newVersion =" 3.0.0.0 "/>
      </ dependentAssembly >

在項目Areas 文件夾下就自動生成了有關幫助頁的所有代碼文件


啟動項目,幫助頁的相對路徑是/Help,如果你新增加了API控制器,幫助頁內容會在運行時自動更新。
幫助頁對應的MVC視圖在項目中的路徑是Areas/HelpPage/Views/Help/Index.cshtml,你可以隨自己的意願定制該視圖的布局、介紹、標題、樣式等等。
默認生成的幫助頁有很多沒什么實際意義的占位字符串。
你可以使用XML文檔注釋功能來創建有意義的文檔。要開啟該功能,需要打開Areas/HelpPage/App_Start/HelpPageConfig.cs文件,取消下面這句代碼的注釋:
// Uncomment the following to use the documentation from XML documentation file.
config.SetDocumentationProvider( new XmlDocumentationProvider ( HttpContext.Current.Server.MapPath( "~/App_Data/XmlDocument.xml" )));
然后在解決方案資源管理器,右鍵項目名稱,選擇屬性,選擇生成,在輸出配置項,勾選XML文檔文件,修改輸出路徑為App_Data/XmlDocument.xml
然后打開API控制器文件,通過XML文檔注釋方式(///方式)給控制器的Action方法添加注釋
/// <summary>
/// 查詢指定ID的商品信息
/// </summary>
/// <param name="id"> 商品ID </param>
/// <returns> 查詢到的商品記錄 </returns>
[ HttpGet]
public Product Get( int id)
{
    return repository.Products.FirstOrDefault(p => p.ProductId == id);
}
重新編譯運行項目,導航到幫助頁,添加的注釋信息就顯示到了幫助頁
如果要幫助頁上隱藏某個API接口的信息,可以給該Action添加ApiExplorerSettings特性同時IgnoreApi屬性設置為true
/// <summary>
/// 獲取商品列表
/// </summary>
/// <returns> 商品列表 </returns>
[ ApiExplorerSettings(IgnoreApi = true )]
public IEnumerable < Product> Get()
{
    return repository.Products;
}
你也可以給控制器添加該特性,整個控制器的信息都不會出現在幫助頁上。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM