我們之前通過word、excel手動編寫的介面文件或者說是第三方的api文件管理工具(小么雞等),大家有沒有遇到以下情況:
swagger完美(這就跟開發日常的開發習慣息息相關了,要及時更新**注釋)解決了以上的問題,swagger在api開發新版本或者迭代版本的時候,只需要更新swagger描述檔案,就可以自動生成介面文件和客戶端服務端**,做到呼叫端**、服務端**以及介面文件的一致性;
#region swagger配置services.addswaggergen(swg =>#region swagger配置services.addswaggergen(swg =>});var xmlpath = path.combine(bashpath, "study.netcore.xml");
swg.includexmlcomments(xmlpath, true);//這個是controller的注釋
新增實體類的說明:基本和api的配置一致,首先勾選xml文件檔案,然後在configureservices中修改swagger配置,如下:
#region swagger配置services.addswaggergen(swg =>說到版本控制,我們第一時間想到的是git、svn等的源**版本管理器,版本控制,顧名思義,就是對程式**,檔案等的變更管理,多個版本保證**更改後有跡可循,可實時恢復之前版本;這就是專案的版本控制,而我們今天說的是對api的版本控制,下面我們借助swagger實現對api的版本控制。});var xmlpath = path.combine(bashpath, "
study.netcore.xml");
swg.includexmlcomments(xmlpath,
true);//
這個是controller的注釋
//model的xml檔案
var xmlmodelpath = path.combine(bashpath, "
study.netcore.model.xml");
swg.includexmlcomments(xmlmodelpath);
});#endregion
首先先建乙個用於區分版本的列舉類如下:
namespace接下來,我們開啟startup.cs類,在configureservices配置中心,修改swagger的配置如下:study.netcore.swaggerhelper}}
private const string apiname = "study.netcore";接著,找到配置啟動項的方法configure,修改swagger啟動**如下:#region swagger配置
services.addswaggergen(swg => api",
description = $"
api" +version,
termsofservice = "
none",
contact = new swashbuckle.aspnetcore.swagger.contact
", email = "", url = ""
} });
});var xmlpath = path.combine(bashpath, "
study.netcore.xml");
swg.includexmlcomments(xmlpath,
true);//
這個是controller的注釋
var xmlmodelpath = path.combine(bashpath, "
study.netcore.model.xml
");//
model的xml檔案
swg.includexmlcomments(xmlmodelpath);
});#endregion
/** 之前只有乙個版本,所以固定寫死
* 遍歷介面版本,並倒敘展示
*/
typeof(apiversion).getenumnames().orderbydescending(ver => ver).tolist().foreach(version =>/swagger.json
", $"
studynetcore api ");
swg.routeprefix = ""
; });
});#endregion
執行如下(借助swagger來實現對api多版本的展示)如下:
自定義路由,新建apirouteattribute特性類,如下:
namespace介面版本控制的使用study.netcore.swaggerhelper
/[controler]/[action]
/// [attributeusage(attributetargets.class | attributetargets.method, allowmultiple = true, inherited = true
)]
public
class
apirouteattribute : routeattribute, iapidescriptiongroupnameprovider
//////
自定義路由建構函式,繼承基類路由
/// ///
public apirouteattribute(string actionname = "
[action]
") : base("
/api//[controller]/
" +actionname)
/////
///自定義版本+路由建構函式,繼承基類路由
/// ///
///public apirouteattribute(apiversion version, string actionname = "") : base($"
/api//[controller]/")}}
ES Kibana IK 安裝及配置,個人學習
注意 安裝es必須要有jdk1.8及其以上的環境 releases download v6.5.4 elasticsearch analysis ik 6.5.4.zip 2 tar zxvf gz c usr local 3 修改config elasticsearch.yml path.data...
個人學習總結及課程建議
個人學習總結 至此,這學期軟體工程這門課徹底結束了,是時候該總結一下這次課程改革給我的感受了。和以往的專業課不同的是,這次軟體工程恰好是第一次課程改革,落在了我們的頭上。起初我可能是拒絕的,因為古往今來,改革的第一批人總是不幸運的,他們會犧牲很多很多。但是在上課的過程中,我逐漸感覺到了不一樣的地方。...
個人學習模型
形成適合自己的學習模型,提高學習效率和能力。以理解關係代數的除法為例,分析為什麼難以理解抽象概念 1 沒有熟悉和理解元組 笛卡爾積 投影 差 的深刻含義。不熟悉容易產生恐懼和模糊的感覺,這會阻止進一步的學習和理解。2 沒有親手舉乙個例項。沒有親手舉具體的例項,產生的也是模糊不清的感覺,這也會阻止進一...