上一節講解了倉儲的依賴注入,想必現在都可以通過構造函數依賴注入直接調用
但是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
在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
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
