Taurus.MVC 2.3.2 :WebAPI 文件整合測試功能及附加<%# JS執行功能語法 %>
阿新 • • 發佈:2020-05-07
前言:
前些天有網友提到了那個介面醜陋的SwaggerUI,讓我想起了多年前實現的WebAPI文件未完成的功能點,於是,動手了,便有了本文的內容。
開源地址:https://github.com/cyq1162/Taurus.MVC
1、WebAPI 文件整合測試功能(增強說明)
開啟WebAPI文件:web.config 或 appsettings.json
設定:"IsStartDoc": true
即可通過/doc訪問自動生成的WebAPI文件
1、過濾掉無描述的介面。
文件自動生成的來源來自專案中的Xml文件註釋
為了能更好的控制顯示的結果,不帶註釋的類或方法(只收錄public),不會被收錄顯示。
2、引數的顯示與執行測試說明
自動和成的引數,來自以下方法的註釋:
/// <summary> /// 獲取Token /// </summary> /// /// <param name="un" required="true" value="13488889999">使用者名稱</param> /// <param name="pwd" type="header">密碼</param> /// <param name="upload" type="file">圖片上傳</param> /// <returns>{success:true:msg:"tokenString..."}</returns> [HttpGet, Require("un", true, RegexConst.Mobile), Require("pwd")] [HttpPost] public void GetToken(string un, string pwd) { //is required. is invalid. 判斷 是否:中文 //CheckFormat("{0}不能為空&{0}格式錯誤", @"un&使用者名稱&^1[3|4|5|8][0-9]\d{8}$", @"pwd&密碼&^[\u0391-\uFFE5]+$"); //string userName = Query<string>("un"); //string pwd = Query<string>("pwd"); if (!string.IsNullOrEmpty(un) && !string.IsNullOrEmpty(pwd)) { byte[] data = System.Text.Encoding.UTF8.GetBytes("Taurus:" + un); string base64 = Convert.ToBase64String(data); Write(base64, true); } else { Write("UserName or Password Error", false); } }
其中:
required 決定是否必填 true 或 false(時可不寫)
type 決定顯示的文字框型別 header(請求頭) file(檔案上傳) 其它(時可不寫)
returns 顯示返回的結果。
3、執行測試結果
可修改請求路徑、請求引數、請求型別。
點選執行執行結果:
系統會自動收集引數並執行,返回結果及請求頭的內容。
2、附加<%# JS執行功能語法 %>
為了實現這個自動測試功能,順路增加了該語法功能。
在/Views/Doc/detail.html 中,有這樣一段html程式碼:
<tbody id="ParaView" clearflag="1"> <tr> <td width="80px">{0}</td> <td>{1}</td> <td> <%# ${required}?'是':'否'%> </td> <td><%# '${type}'=='file'?'檔案':('${type}'=='header'?'請求頭':'${type}')%></td> <td> <![CDATA[ <input name="{0}" type="<%# '${type}'=='file'?'file':'text'%>" value="{4}" style="width:90%" rtype="${type}" <%# ${required}?'required="required"':'false'%> /> ]]> </td> </tr> </tbody>
其中 ${索引或屬性名} 是之前就有的繫結語法。
為了方便html中對於簡單的判斷的文字變更,思考之後,把<%# 這裡的內容都會被JS引擎執行 %>語法塊功能給加上了。
細節說明:
由於模板是xhtml語法要求,對於不符合xml語法的地方,可以用
<![CDATA[ ...]]> 包含起來。
結束說明:
1、本次版本更新主要就是以上兩點功能。
2、由於net core 下支援 <%# %>語法,引用了Microsoft.ClearScript.dll(這個最低支援是3.1),所以netcore的預設版本調高到3.1。