ASP.NET Core WebApi使用Swagger生成API说明文档【特性版】

⒈新建ASP.NET Core WebAPi项目

⒉添加 NuGet 包

Install-Package Swashbuckle.AspNetCore

⒊Startup中配置

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using Microsoft.AspNetCore.Builder;
 6 using Microsoft.AspNetCore.Hosting;
 7 using Microsoft.AspNetCore.Mvc;
 8 using Microsoft.Extensions.Configuration;
 9 using Microsoft.Extensions.DependencyInjection;
10 using Microsoft.Extensions.Logging;
11 using Microsoft.Extensions.Options;
12 using Swashbuckle.AspNetCore.Swagger;
13 
14 namespace SwaggerDemo
15 {
16     public class Startup
17     {
18         public Startup(IConfiguration configuration)
19         {
20             Configuration = configuration;
21         }
22 
23         public IConfiguration Configuration { get; }
24 
25         // This method gets called by the runtime. Use this method to add services to the container.
26         public void ConfigureServices(IServiceCollection services)
27         {
28             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
29 
30             //注册Swagger生成器,定义一个和多个Swagger 文档
31             services.AddSwaggerGen(option =>
32             {
33                 //配置第一个Doc
34                 option.SwaggerDoc("v1", new Info
35                 {
36                     Version = "v1",
37                     Title = "My API_1"
38                 });
39             });
40         }
41 
42         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
43         public void Configure(IApplicationBuilder app, IHostingEnvironment env)
44         {
45             if (env.IsDevelopment())
46             {
47                 app.UseDeveloperExceptionPage();
48             }
49 
50             //启用中间件服务生成Swagger作为JSON终结点
51             app.UseSwagger();
52 
53             //启用中间件服务对swagger-ui,指定Swagger JSON终结点
54             app.UseSwaggerUI(c =>
55             {
56                 c.SwaggerEndpoint("/swagger/v1/swagger.json", "DemoAPI V1");
57                 //c.RoutePrefix = "swagger";  //默认
58                 c.RoutePrefix = string.Empty;
59             });
60 
61             app.UseMvc();
62         }
63     }
64 }

⒋添加 特性相关NuGet 包

1 Install-Package Swashbuckle.AspNetCore.Annotations

⒌修改Startup中的ConfigureServices方法,启用特性支持

 1         public void ConfigureServices(IServiceCollection services)
 2         {
 3             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
 4 
 5             //注册Swagger生成器,定义一个和多个Swagger 文档
 6             services.AddSwaggerGen(option =>
 7             {
 8                 //配置第一个Doc
 9                 option.SwaggerDoc("v1", new Info
10                 {
11                     Version = "v1",
12                     Title = "My API_1"
13                 });
14                 //启用特性支持
15                 option.EnableAnnotations();
16             });
17         }

⒍一些示范

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using Microsoft.AspNetCore.Http;
 6 using Microsoft.AspNetCore.Mvc;
 7 using SwaggerDemo.Models;
 8 using Swashbuckle.AspNetCore.Annotations;
 9 
10 namespace SwaggerDemo.Controllers
11 {
12     [Route("api/[controller]")]
13     [ApiController]
14     [SwaggerTag("用户控制器")]
15     public class UserController : ControllerBase
16     {
17         [HttpGet("get")]
18         [SwaggerOperation(Summary = "获取用户列表",Description = "获取系统中所有用户信息",OperationId = "GetUsers")]
19         public IList<User> GetUsers()
20         {
21             return new List<User>
22             {
23                 new User{ id = 1,username = "fanqi",password = "admin",age = 25,email = "fanqisoft@163.com"},
24                 new User{ id = 2,username = "gaoxing",password = "admin",age = 22,email = "gaoxing@163.com"}
25             };
26         }
27 
28         [SwaggerResponse(201, "用户创建成功"]
29         [SwaggerResponse(400, "用户创建失败")]
30         [SwaggerOperation(Summary = "新建用户信息", Description = "新建用户信息", OperationId = "CreateUser")]
31         [HttpPost("add")]
32         public IActionResult CreateUser([FromForm, SwaggerParameter("新建用户数据", Required = true)]User user)
33         {
34             return Ok();
35         }
36     }
37 }

 

原文地址:https://www.cnblogs.com/fanqisoft/p/10956951.html