Fork me on GitHub

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

posted @ 2018-04-27 12:59  雪山玉龙  阅读(2139)  评论(1编辑  收藏  举报