[ASP.NET]為ASP.NET Web API 建立 Help Page

為ASP.NET Empty 專案建立的 Web API 增加 Help Page

環境:Visual Studio 2013

當依「Getting Started with ASP.NET Web API 2 (C#)」建立 Web API 後,

是沒有辦法看到 API 的說明頁面,因為一開始的範本是 Empty 。

image

 

如果要加入 Help Page 的話,可以透過 Nuget 加入 Microsoft ASP.NET Web API 2.2 Help Page,如下,

image

 

安裝完成後,請到 Areas\HelpPage\App_Start\HelpPageConfig.cs 中,在 Register Method中取消
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
註解,如下,

image

 

然後,就可以在 專案屬性=>Build 中,勾選產生 XML document file:,

檔名請改成 App_Data\XmlDocument.xml  (因為跟 HelpPageConfig.cs 的檔名相同)

image

 

再到 global.asax.cs 中 Application_Start Method 中,加入 AreaRegistration.RegisterAllAreas();

image

 

建置後就可以看到 API 的 Help Page,如下,

image

 

如果點進 api/Products/{id} 後,會發現  Response Formats 是沒有Sample的,如下,

image

 

那是因為 api/Products/{id} 的回傳資料型態是 IHttpActionResult, 所以我們可以在Method中去設定 ResponseType 為 Product ,

[ResponseType(typeof(Product))]
public IHttpActionResult GetProduct(int id)
{
    var product = products.FirstOrDefault(p => p.Id == id);
    if (product == null)
    {
        return NotFound();
    }
    return Ok(product);
}

 

然後再重新建置後, Response Formats 區塊就有資料可以呈現了,如下,

image

 

參考資料:

Getting Started with ASP.NET Web API 2 (C#)

How can I get the help documentation to work in WebApi2 when using IHttpActionResult?

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^