前言:剛好要做一個類似Swagger那種可以快速存取api介面和演示的功能,於是就把做的思路寫到包裏面去,給有需要的小夥伴提供學習和參考。
首先,安裝1.0.10以及以上版本的 Wesky.Net.OpenTools 包
包內,該功能的核心程式碼如下:
自訂內容:
實體類JSON模式生成器:
使用方式:參照上面的1.0.10版本或以上的包。如果實體類有特殊需求,例如對映為其他名稱,可以用OpenJson內容來實作。實體類物件案例如下:
上面實體類,提供了內容小寫標記、沒有任何標記、以及一個集合內容,用於展示可能存在的多種情況。如果需要小寫,或者對映為其他的,可以透過OpenJson內容來標記為指定的名稱;如果存在多層或者集合,也可以自動辨識巢狀關系。
使用方式,只需要一行程式碼即可:
輸出結果如下所示。
套用場景:可以用於實作類似swagger的輸入參數的快速賦值操作。例如存取webapi介面,透過解析對應參數實體,自動顯示輸入參數的Json結構,然後裏面填寫結果進行快速演示測試之類的。或者其他拓展方法等,需要大佬們感興趣的自己去玩玩。
本次演示程式碼:
public classTestInfo
{
[OpenJson("name")]
publicstring Name { get; set; }
[OpenJson("description")]
publicstring Description { get; set; }
publicint Age { get; set; }
publicbool IsMale { get; set; }
publicstring School { get; set; }
public List<Student> Students { get; set; }
}
public classStudent
{
[OpenJson("name")]
publicstring Name { get; set; }
publicstring Address { get; set; }
}
// Program:
staticvoidMain(string[] args)
{
var data = OpenJsonSchemaGenerator.CreateJsonSchema(typeof(TestInfo));
Console.WriteLine(data);
Console.ReadLine();
}
如果以上內容對你有幫助,歡迎點贊、轉發、在看和關註我的個人公眾號: 【Dotnet Dancer】
OpenTools系列文章快捷連結【新版本完全相容舊版本,不需要更新任何程式碼均可使用】:
1.0.8版本:
上位機和工控必備!用.NET快速搞定Modbus通訊的方法
1.0.7版本:
大揭秘!.Net如何在5分鐘內快速實作物聯網掃碼器通用掃碼功能?
1.0.6版本:
.NET實作獲取NTP伺服器時間並同步(附帶Windows系統啟用NTP服務功能)
1.0.5版本:
C#使用P/Invoke來實作登錄檔的增刪改查功能
1.0.3版本:
C#實作圖片轉Base64字串,以及base64字串在Markdown檔內復原的演示
1.0.2版本:
C#實作Ping遠端主機功能(支持IP和網域名稱)
1.0.1版本:
開始開源計畫OpenTools的創作(第一個功能:AES加密解密)
【備註】 包版本完全開源,並且沒有任何第三方依賴。使用.net framework 4.6+、任意其他跨平台.net版本環境,均可直接參照。
再次感謝各位閱讀~~~