C#進階系列——WebApi 接口測試工具:WebApiTestClient
前言:這兩天在整WebApi的服務,因爲調用方是Android客戶端,Android開發人員也不懂C#語法,API裏面的接口也不能直接給他們看,沒辦法,只有整個詳細一點的文檔唄。因爲接口個數有點多,每一個接口都要詳細說明接口做用、參數類型、返回值類型等等,寫着寫着把博主惹毛了,難道這種文檔非要本身寫不成?難道網上沒有這種文檔的展現工具嗎?帶着這兩個問題,在網絡世界裏尋找,網絡世界很奇妙,只要你用心,總能找到或多或少的幫助!這不就被博主找到了這個好用的組件:WebApiTestClient。它對於接口的做用、參數做用以及類型、返回值說明等等都能很好展示,而且提供測試調用的功能,輸入測試參數發送請求,就能獲得相應的返回結果。哇塞,這一系列可視化的效果不正是博主須要的嗎,還寫什麼文檔,趕忙用起來!css
WebApi系列文章html
- C#進階系列——WebApi接口測試工具:WebApiTestClient
- C#進階系列——WebApi 跨域問題解決方案:CORS
- C#進階系列——WebApi身份認證解決方案:Basic基礎認證
- C#進階系列——WebApi接口傳參再也不困惑:傳參詳解
- C#進階系列——WebApi接口返回值不困惑:返回值類型詳解
- C#進階系列——WebApi異常處理解決方案
- C#進階系列——WebApi區域Area使用小結
1、WebApiTestClient介紹
一、WebApiTestClient組件做用主要有如下幾個:git
(1)、將WebApi的接口放到了瀏覽器裏面,以可視化的方式展示出來,好比咱們經過http://localhost:8080/Help這個地址就能在瀏覽器裏面看到這個服務裏面全部的API接口以及接口的詳細說明,省去了咱們手寫接口文檔的麻煩。github
(2)、可以詳細查看API的類說明、方法說明、參數說明、返回值說明。只須要咱們在定義方法時候加上 /// <summary> 這種詳細註釋便可,組件自動讀取註釋裏面的內容展示在界面上面。json
(3)、能夠修改http請求頭文件Head和請求體Body裏面的參數,指定發送http請求的特性,好比指定咱們最多見的contentType指示參數的類型。跨域
(4)、組件擁有測試接口的功能,用過Soup UI的朋友應該知道,經過Soup UI可以方便測試WebService參數以及返回值。咱們的WebApiTestClient也能夠實現相似的功能,直接經過頁面上的測試按鈕,就能測試接口。
瀏覽器
二、WebApiTestClient是一個開源組件。開源地址:https://github.com/yaohuang/WebApiTestClient網絡
2、WebApiTestClient展現
第一印象:接口列表。 app
點擊某一個接口查看接口詳細。例如本文查看Get請求的無參方法,右下角有按鈕能夠測試接口。ide
點擊「Test API」按鈕
點擊Send發送請求
第二個有參數的接口
手動輸入參數,獲得返回結果
若是參數的類型是對象,能夠直接解析class定義上面的 /// <summary> 標註,顯示以下
因爲是post請求,若是須要執行參數長度和類型,能夠經過content-length和content-type來指定。而且具體的參數能夠指定不一樣格式顯示,好比下圖的application/json和application/xml
獲得返回值
3、WebApiTestClient使用
一、如何引入組件
首先,咱們須要定義一個API項目
而後經過Nuget引入組件,以下圖。記住選下圖中的第三個。
引入成功後,將向項目裏面添加一些主要文件:
- Scripts\WebApiTestClient.js
- Areas\HelpPage\TestClient.css
- Areas\HelpPage\Views\Help\DisplayTemplates\TestClientDialogs.cshtml
- Areas\HelpPage\Views\Help\DisplayTemplates\TestClientReferences.cshtml
二、如何使用組件
一、修改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") }
二、配置讀取註釋的xml路徑
其實,經過上面的步驟,咱們的項目已經能夠跑起來了,也能夠調用接口測試。可是,還不能讀取 /// <summary> 註釋裏面的東西。須要作以下配置才行。
(1)配置生成xml的路徑。咱們在項目上面點右鍵→屬性→生成標籤頁配置xml的路徑
(2)在xml的讀取路徑:在下圖的HelpPageConfig.cs裏面配置一句話,指定xml的讀取路徑。
這句代碼以下:
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/WebApiTestClient.XML")));
三、測試接口
/// <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就能獲得上述效果。還不趕忙試試~~
4、總結
上面簡單總結了下WebApiTestClient的使用,若是你的WebApi也是一個單獨的服務,能夠整起來當幫助文檔用,免得你本身寫。哈哈,不要謝我,請叫我紅領巾。歡迎推薦。Demo下載