天天看點

.NetCore環境下搭建Swaggar

我們先簡單介紹下什麼是Swagger,主要是用來幹嘛??

在Swagger誕生之前,我們通常在開發接口的過程中,需要前後端共同維護一個接口文檔,然後大家按照接口文檔的規範進行對接。接口文檔俨然成了接口開發過程中不可或缺的一部分,然而對于大部分喜歡敲代碼的同志們來說,寫文檔簡直頭疼,并且一般項目後期往往會由于疏忽未能及時更新文檔,導緻代碼和接口文檔不一緻,這中間就有點道不清說不明了。

正是在這種大環境下,Swagger及時出現,解放了前後端開發人員對接口文檔的維護壓力。Swagger實際上就是一個自動生成規範接口文檔的工具,由服務端設計人員調用,我們隻需要按照它的格式要求在代碼中添加注釋即可。

好了,下面我們開始步入正題,如何快速搭建Swagger項目。

首先,我們需要添加.NetCore Web API應用程式。

.NetCore環境下搭建Swaggar
.NetCore環境下搭建Swaggar

然後,在項目中添加如下Nuget程式包。

.NetCore環境下搭建Swaggar

添加Swagger引用之後,在項目中注冊并使用Swagger.

首先,注冊服務。

1 public void ConfigureServices(IServiceCollection services)
 2         {
 3             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
 4             //注冊Swagger服務
 5             services.AddSwaggerGen(s =>
 6             {
 7                 //基本資訊配置
 8                 s.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
 9                 {
10                     Version = "v1",
11                     Title = "個人測試",
12                     Description = "僅供測試使用",
13                     Contact = new Microsoft.OpenApi.Models.OpenApiContact { Email = "[email protected]" }
14                 });
15                 //包含應用程式對應的Swagger xml文檔
16                 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
17                 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
18                 s.IncludeXmlComments(xmlPath);
19             });
20         }      

對于XML文檔,我們還需要在生成時指定xml輸出路徑。我這裡是指定的項目根目錄。這裡有個禁止顯示警告配置:添加了1591(用于解決未添加xml說明的警告)

.NetCore環境下搭建Swaggar

 然後,我們添加Swagger中間件。

1  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 2         {
 3             if (env.IsDevelopment())
 4             {
 5                 app.UseDeveloperExceptionPage();
 6             }
 7             else
 8             {
 9                 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
10                 app.UseHsts();
11             }
12             app.UseHttpsRedirection();
13             app.UseMvc();
14             //使用Swagger
15             app.UseSwagger();
16             app.UseSwaggerUI(s =>
17             {
18                 //指定json檔案
19                 s.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");
20                 //預設字首swagger  此處去掉字首 直接根目錄通路
21                 s.RoutePrefix = string.Empty;
22             });
23         }      

這裡有個地方大家需要注意下:s.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");指定json檔案url的時候,url裡面的v1需要和服務注冊時:s.SwaggerDoc("v1", "")這裡的v1對應一緻。

最後,我們隻需要在啟動項目,在浏覽器中輸入URL:https://localhost:5001/index.html   端口以項目實際啟動的端口為準.

.NetCore環境下搭建Swaggar

大家可以看到預設的接口方法中:

.NetCore環境下搭建Swaggar

 這裡的“Get方式擷取”就是我們在項目接口方法體上添加的xml注釋說明。

 項目搭建成功啦!!!文中如有描述不對的地方,歡迎各位小夥伴前來交流。

繼續閱讀