上一节讲解了仓储的依赖注入,想必现在都可以通过构造函数依赖注入直接调用
但是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