zoukankan      html  css  js  c++  java
  • 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 }

     

  • 相关阅读:
    增长思维——模式&&组织
    BackUP
    增长思维——机会
    Android
    增长思维——作战地图
    Server架构 小知识
    Server
    产品思维——创新模式
    产品思维——用户体验
    博客迁移到~http://zhulingyu.com
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10956951.html
Copyright © 2011-2022 走看看