目錄
* 前言 <https://www.cnblogs.com/AprilBlank/p/11282336.html#前言>
* Swagger <https://www.cnblogs.com/AprilBlank/p/11282336.html#swagger>
* NuGet引用第三方類庫
<https://www.cnblogs.com/AprilBlank/p/11282336.html#nuget引用第三方類庫>
* 別急,還有 <https://www.cnblogs.com/AprilBlank/p/11282336.html#別急還有>
* 沒錯,注釋 <https://www.cnblogs.com/AprilBlank/p/11282336.html#沒錯注釋>
* 小結(jié) <https://www.cnblogs.com/AprilBlank/p/11282336.html#小結(jié)>
前言
前后分離的好處,就是后端埋頭做業(yè)務邏輯功能,不需要過多考慮用戶體驗,只專注于數(shù)據(jù)、性能開發(fā),對于前端需要的數(shù)據(jù)可以通過組Json或者其他方式回調(diào),但是前后兩端需要確定好接口Api的規(guī)范,并且前端如果需要查看接口的相關(guān)信息,就需要文檔的支撐了。那么問題來了,后端在開發(fā)過程中每次改動接口,都需要改動文檔,累不累。
Swagger
Swagger作為一個在線文檔,通過后端的接口控制器生成一套Json串數(shù)據(jù),實時展示后端的接口請求地址,參數(shù),類型以及回調(diào),很好的解決這個問題(后端可以給前端一個Swagger的地址,然后來句你自己看吧,當然還是需要多溝通的),這個在Java里用過之后,就馬上看看有沒有.net的版本,果然,語言都是相通的,廢話不多說,開始
第三方類庫的引用。
NuGet引用第三方類庫
工具->NuGet包管理器->管理解決方案的NuGet程序包...
在瀏覽中查找"Swashbuckle.AspNetCore",選擇項目工程,點擊安裝。
引入完成后,在Startup.cs文件ConfigureServices中,加入以下代碼:
public void ConfigureServices(IServiceCollection services) {
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
#region Swagger services.AddSwaggerGen(options => { options.SwaggerDoc("v1",
new Info { Version = "v1.1.0", Title = "April WebAPI", Description = "后臺框架",
TermsOfService = "None", Contact = new Contact { Name = "Blank", Email =
"[email protected]", Url = "http://www.aprilblank.com" } }); }); #endregion }
在Startup.cs類里編輯Configure方法,加入以下代碼:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { …
#region Swagger app.UseSwagger(); app.UseSwaggerUI(options => {
options.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1"); });
#endregion app.UseHttpsRedirection(); app.UseMvc(); }
重新生成工程后,訪問你的端口/swagger就可以看到接口文檔幫助界面了。
別急,還有
在線的接口文檔是有了,可一個接口啥意思都不知道,前端還是得一臉懵逼問你,這個接口啥意思啊,這個參數(shù)啥意思啊什么的。
沒錯,注釋
還是在Startup.cs文件ConfigureServices中,加入以下代碼:
public void ConfigureServices(IServiceCollection services) {
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
#region Swagger services.AddSwaggerGen(options => { options.SwaggerDoc("v1",
new Info { Version = "v1.1.0", Title = "April WebAPI", Description = "后臺框架",
TermsOfService = "None", Contact = new Contact { Name = "Blank", Email =
"[email protected]", Url = "http://www.aprilblank.com" } }); // 為 Swagger JSON
and UI設置xml文檔注釋路徑 var basePath =
Path.GetDirectoryName(AppContext.BaseDirectory);//獲取應用程序所在目錄(絕對,不受工作目錄影響,建議采用此方法獲取路徑)
var xmlPath = Path.Combine(basePath, "April.xml");
options.IncludeXmlComments(xmlPath); }); #endregion }
右鍵WebApi這個項目工程,點擊屬性,在生成這一欄
先拿Values這個控制器做實驗
重新生成后會在對應目錄看到有Apirl.xml文檔文件,運行之后查看/Swagger
點開剛才單獨注釋參數(shù)的/api/Values/{id}
小結(jié)
一個WebApi工程離不開文檔,而一個在線文檔可以省掉自己很多事,并且Swagger也支持在線調(diào)試,雖說我自己還是傾向于Postman(后續(xù)會介紹相關(guān)工具),這個在線文檔不僅是方便了前端查看,總之在開發(fā)上確實是一個利器。
下一篇,介紹后臺核心之一,Log日志。