C#進階系列——WebApi 介面測試工具:WebApiTestClient 一、WebApiTestClient介紹 1、WebApiTestClient組件作用主要有以下幾個: (1)、將WebApi的介面放到了瀏覽器裡面,以可視化的方式展現出來,比如我們通過http://localhost:8 ...
C#進階系列——WebApi 介面測試工具:WebApiTestClient
一、WebApiTestClient介紹
1、WebApiTestClient組件作用主要有以下幾個:
(1)、將WebApi的介面放到了瀏覽器裡面,以可視化的方式展現出來,比如我們通過http://localhost:8080/Help這個地址就能在瀏覽器裡面看到這個服務裡面所有的API介面以及介面的詳細說明,省去了我們手寫介面文檔的麻煩。
(2)、能夠詳細查看API的類說明、方法說明、參數說明、返回值說明。只需要我們在定義方法時候加上 /// <summary> 這種詳細註釋即可,組件自動讀取註釋裡面的內容展現在界面上面。
(3)、可以修改http請求頭文件Head和請求體Body裡面的參數,指定發送http請求的特性,比如指定我們最常見的contentType指示參數的類型。
(4)、組件擁有測試介面的功能,用過Soup UI的朋友應該知道,通過Soup UI能夠方便測試WebService參數以及返回值。我們的WebApiTestClient也可以實現類似的功能,直接通過頁面上的測試按鈕,就能測試介面。
2、WebApiTestClient是一個開源組件。開源地址:https://github.com/yaohuang/WebApiTestClient
二、WebApiTestClient展示
第一印象:介面列表。
點擊某一個介面查看介面詳細。例如本文查看Get請求的無參方法,右下角有按鈕可以測試介面。
點擊“Test API”按鈕
點擊Send發送請求
第二個有參數的介面
手動輸入參數,得到返回結果
如果參數的類型是對象,可以直接解析class定義上面的 /// <summary> 標註,顯示如下
由於是post請求,如果需要執行參數長度和類型,可以通過content-length和content-type來指定。並且具體的參數可以指定不同格式顯示,比如下圖的application/json和application/xml
得到返回值
回到頂部三、WebApiTestClient使用
回到頂部1、如何引入組件
首先,我們需要定義一個API項目
然後通過Nuget引入組件,如下圖。記住選下圖中的第三個。
引入成功後,將向項目裡面添加一些主要文件:
- Scripts\WebApiTestClient.js
- Areas\HelpPage\TestClient.css
- Areas\HelpPage\Views\Help\DisplayTemplates\TestClientDialogs.cshtml
- Areas\HelpPage\Views\Help\DisplayTemplates\TestClientReferences.cshtml
2、如何使用組件
1、修改Api.cshtml文件
通過上述步驟,就能將組件WebAPITestClient引入進來。下麵我們只需要做一件事:打開文件 (根據 Areas\HelpPage\Views\Help) Api.cshtml 並添加以下內容:
- @Html.DisplayForModel("TestClientDialogs")
- @Html.DisplayForModel("TestClientReferences")
添加後Api.cshtml文件的代碼如下
@using System.Web.Http @using WebApiTestClient.Areas.HelpPage.Models @model HelpPageApiModel @{ var description = Model.ApiDescription; ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath; } <link type="text/css" href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" /> <div id="body" class="help-page"> <section class="featured"> <div class="content-wrapper"> <p> @Html.ActionLink("Help Page Home", "Index") </p> </div> </section> <section class="content-wrapper main-content clear-fix"> @Html.DisplayForModel() </section> </div> @Html.DisplayForModel("TestClientDialogs") @section Scripts{ <link href="~/Areas/HelpPage/HelpPage.css" rel="stylesheet" /> @Html.DisplayForModel("TestClientReferences") }
2、配置讀取註釋的xml路徑
其實,通過上面的步驟,我們的項目已經可以跑起來了,也可以調用介面測試。但是,還不能讀取 /// <summary> 註釋裡面的東西。需要做如下配置才行。
(1)配置生成xml的路徑。我們在項目上面點右鍵→屬性→生成標簽頁配置xml的路徑
(2)在xml的讀取路徑:在下圖的HelpPageConfig.cs裡面配置一句話,指定xml的讀取路徑。
這句代碼如下:
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/WebApiTestClient.XML")));
3、測試介面
/// <summary> /// 測試API Test Client /// </summary> public class TestChargingDataController : ApiController { /// <summary> /// 得到所有數據 /// </summary> /// <returns>返回數據</returns> [HttpGet] public string GetAllChargingData() { return "ChargingData"; } /// <summary> /// 得到當前Id的所有數據 /// </summary> /// <param name="id">參數Id</param> /// <returns>返回數據</returns> [HttpGet] public string GetAllChargingData(string id) { return "ChargingData" + id ; } /// <summary> /// Post提交 /// </summary> /// <param name="oData">對象</param> /// <returns>提交是否成功</returns> [HttpPost] public bool Post(TB_CHARGING oData) { return true; } /// <summary> /// Put請求 /// </summary> /// <param name="oData">對象</param> /// <returns>提交是否成功</returns> [HttpPut] public bool Put(TB_CHARGING oData) { return true; } /// <summary> /// delete操作 /// </summary> /// <param name="id">對象id</param> /// <returns>操作是否成功</returns> [HttpDelete] public bool Delete(string id) { return true; } } /// <summary> /// 充電對象實體 /// </summary> public class TB_CHARGING { /// <summary> /// 主鍵Id /// </summary> public string ID { get; set; } /// <summary> /// 充電設備名稱 /// </summary> public string NAME { get; set; } /// <summary> /// 充電設備描述 /// </summary> public string DES { get; set; } /// <summary> /// 創建時間 /// </summary> public DateTime CREATETIME { get; set; } }
至此,組件就搭完了,剩下的就是運行了。我們在url裡面敲地址http://localhost:8080/Help/Index或者http://localhost:8080/Help就能得到上述效果。還不趕緊試試~~