前言
前后分離的好處,就是后端埋頭做業務邏輯功能,不需要過多考慮用戶體驗,只專注於數據、性能開發,對於前端需要的數據可以通過組Json或者其他方式回調,但是前后兩端需要確定好接口Api的規范,並且前端如果需要查看接口的相關信息,就需要文檔的支撐了。那么問題來了,后端在開發過程中每次改動接口,都需要改動文檔,累不累。
Swagger
Swagger作為一個在線文檔,通過后端的接口控制器生成一套Json串數據,實時展示后端的接口請求地址,參數,類型以及回調,很好的解決這個問題(后端可以給前端一個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 = "1829027193@qq.com", 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就可以看到接口文檔幫助界面了。
別急,還有
在線的接口文檔是有了,可一個接口啥意思都不知道,前端還是得一臉懵逼問你,這個接口啥意思啊,這個參數啥意思啊什么的。
沒錯,注釋
還是在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 = "790048789@qq.com", 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
點開剛才單獨注釋參數的/api/Values/{id}
小結
一個WebApi工程離不開文檔,而一個在線文檔可以省掉自己很多事,並且Swagger也支持在線調試,雖說我自己還是傾向於Postman(后續會介紹相關工具),這個在線文檔不僅是方便了前端查看,總之在開發上確實是一個利器。
下一篇,介紹后台核心之一,Log日志。