ASP.Net Core中使用Swagger

我们先简单介绍下什么是Swagger,主要是用来干嘛??

在Swagger诞生之前,我们通常在开发接口的过程中,需要前后端共同维护一个接口文档,然后大家按照接口文档的规范进行对接。接口文档俨然成了接口开发过程中不可或缺的一部分,然而对于大部分喜欢敲代码的同志们来说,写文档简直头疼,并且一般项目后期往往会由于疏忽未能及时更新文档,导致代码和接口文档不一致,这中间就有点道不清说不明了。

正是在这种大环境下,Swagger及时出现,解放了前后端开发人员对接口文档的维护压力。Swagger实际上就是一个自动生成规范接口文档的工具,由服务端设计人员调用,我们只需要按照它的格式要求在代码中添加注释即可。

好了,下面我们开始步入正题,如何快速搭建Swagger项目。

首先,我们需要添加.NetCore Web API应用程序。

然后,在项目中添加如下Nuget程序包。

添加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 = "123@123.com" }
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说明的警告)

 

 然后,我们添加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   端口以项目实际启动的端口为准.

大家可以看到默认的接口方法中:

 这里的“Get方式获取”就是我们在项目接口方法体上添加的xml注释说明。

 项目搭建成功啦!!!文中如有描述不对的地方,欢迎各位小伙伴前来交流。

 

原文地址:https://www.cnblogs.com/chenxf1117/p/12572181.html