NetCore+Dapper WebApi架構搭建(五):Swagger構建WebApi界面


上一節講解了倉儲的依賴注入,想必現在都可以通過構造函數依賴注入直接調用

但是WebApi只是提供一個接口調用,為了方便我們的操作,我們得給他加上一個圖形化界面工具,使用Swagger

WebApi項目添加Swagger的Nuget包:Swashbuckle.AspNetCore

打開StartUp.cs類,在ConfigureServices方法里面添加下面的代碼

 1 #region  添加SwaggerUI
 2 
 3             services.AddSwaggerGen(options =>
 4             {
 5                 options.SwaggerDoc("v1", new Info
 6                 {
 7                     Title = "Dinner API接口文檔",
 8                     Version = "v1",
 9                     Description = "RESTful API for Dinner",
10                     TermsOfService = "None",
11                     Contact = new Contact { Name = "wangshibang", Email = "wangyulong0505@sina.com", Url = "" }
12                 });
13                 options.IgnoreObsoleteActions();
14                 options.DocInclusionPredicate((docName, description) => true);
15                 options.IncludeXmlComments(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "Dinner.WebApi.xml"));
16                 options.DescribeAllEnumsAsStrings();
17                 options.OperationFilter<HttpHeaderOperation>(); // 添加httpHeader參數
18             });
19 
20             #endregion
View Code

在Configure方法里面添加下面的代碼

1 #region 使用SwaggerUI
2 
3             app.UseSwagger();
4             app.UseSwaggerUI(options =>
5             {
6                 options.SwaggerEndpoint("/swagger/v1/swagger.json", "Dinner API V1");
7             });
8 
9             #endregion
View Code

PlatformServices.Default.Application.ApplicationBasePath是項目生產的默認目錄,Dinner.WebApi.xml是項目生產的Xml文檔,這需要設置

右鍵WebApi項目選擇屬性

后面添加個1591是為了避免不必要的警告

然后打開項目下面的Properties下面的launchSettings.json修改頁面啟動頁為swagger

上面說的RuntimeHelper類有個[ApiExplorerSettings(IgnoreApi=true)],這個是忽略這個Api的意思,你只需要在對應的Api上面添加這個特性,對應的Api就會被忽略

我們需要在UsersController里面的action上寫上注釋,這樣在Swagger頁面才會有對應的文字說明

在StartUp類里面的swagge配置里有個options.OperationFilter<HttpHeaderOperation>();,這個是認證的內容,我們放到下節講解,現在你們先把他注釋掉

F5運行項目,看看生成的swagger頁面

下一節我們講JWT認證

源碼地址:https://github.com/wangyulong0505/Dinner


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM