前言
為什么在開發中,接口文檔越來越成為前后端開發人員溝通的樞紐呢?

隨着業務的發張,項目越來越多,而對於支撐整個項目架構體系而言,我們對系統業務的水平拆分,垂直分層,讓業務系統更加清晰,從而產生一系統平台和系統,並使用接口進行數據交互。因此可見,業務的不斷發展,接口不斷增多,很多接口各自寄宿在不同的項目中,如果沒有使用api工具進行管理,那么使用和說明將變得非常復雜。所以,接口管理運營應運而生。
在過去的開發中,沒有API文檔管理工具之前,很多的API文檔在什么地方寫的都有,有在word寫的,有在excel寫的,也有對應的項目目錄下readme.md寫的,每個公司都有每個公司的玩法,但是文檔規范極其不統一,甚至出現開發接口更新,但文檔不更新,最終導致代碼和接口不匹配,開發功能出問題。擼碼一分鍾,對接三小時。這往往是大家最痛苦的。

因此,在前后端分離的情況下,怎樣讓前后端開發人員更容易、更直觀、更舒服的方式進行溝通交流。在這里,推薦一款輕量級的項目框架Swagger給大家使用。Swagger就是一款讓你更好書寫API文檔的框架
開始
一、 引用Swagger的nuget包
Swashbuckle.AspNetCore

然后就在項目的Nuget依賴里看到剛剛引入的Swagger

二、服務配置環節
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("V1", new OpenApiInfo { Version = "V1", //版本 Title = $"XUnit.Core 接口文檔-NetCore3.1", //標題 Description = $"XUnit.Core Http API v1", //描述 Contact = new OpenApiContact { Name = "艾三元", Email = "", Url = new Uri("http://i3yuan.cnblogs.com") }, License = new OpenApiLicense { Name = "艾三元許可證", Url = new Uri("http://i3yuan.cnblogs.com") } }); }); services.AddControllers(); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint($"/swagger/V1/swagger.json", $"XUnit.Core V1"); c.RoutePrefix = string.Empty; //如果是為空 訪問路徑就為 根域名/index.html,注意localhost:8001/swagger是訪問不到的 //路徑配置,設置為空,表示直接在根域名(localhost:8001)訪問該文件 // c.RoutePrefix = "swagger"; // 如果你想換一個路徑,直接寫名字即可,比如直接寫c.RoutePrefix = "swagger"; 則訪問路徑為 根域名/swagger/index.html }); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }

運行項目之后,我們發現官方默認的是 /WeatherForecast地址,所以我們修改成在域名后面輸入/index.html,就可以正常訪問了。
如果想修改默認的啟動地址,可以在launchSetting.json文件中的launchUrl設置為空,或者刪除掉就可以了。

這個時候我們再次啟動項目,就可以直接訪問根目錄下的文件了。

如果啟動應用,並導航到 http://localhost:<port>/swagger/V1/swagger.json。 生成的描述終結點的文檔顯示如下json格式。

補充
總結
1. 從過去手寫Api文檔,到引入Swagger工具自動生產API接口說明文檔,這一轉換,讓更多的接口可以以通俗易懂的方式展現給開發人員。
2. 后續會繼續介紹Swagger的一些高級用法,希望對大家使用Swagger有所幫助。
