前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swagger扩展为你"添油加气"

Swagger扩展为你"添油加气"

作者头像
leon公众号精选
发布2022-04-27 15:54:27
2740
发布2022-04-27 15:54:27
举报
文章被收录于专栏:架构师高级俱乐部

介绍一款Swagger扩展

日常接口开发中都需要用到Swagger来生成接口文档并用 Swagger 自带支持的模拟请求进行测试,但是需要支持认证或者上传文件等操作需要自行去按接口进行开发才可支持,现在介绍一款封装了 Swagger 的中间件来避免一些繁琐的操作即可支持常用功能

1

如何使用

  • 安装 NetPro.Swagger

执行以下命令或者 Nuget 包管理器中搜索安装最新版

代码语言:javascript
复制
Install-Package NetPro.Swagger  -Version 3.1.6 
  • Swagger 注入
代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services,IConfiguration configuration) 
{ 
     services.AddNetProSwagger(configuration); 
} 
 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 
{ 
      app.UseNetProSwagger(); 
}
  • 输出 XML 文档

相关类库 csproj 工程文件中加入以下配置

代码语言:javascript
复制
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">    
<DocumentationFile>bin\Debug\netcoreapp3.1\程序集名称.xml</DocumentationFile> 
 </PropertyGroup>

运行没有任何反应,这时候需要在 appsetting.json 配置文件中加入相关配置

代码语言:javascript
复制
"SwaggerOption": { 
    "Enable": true,//是否开启Swagger 
    "RoutePrefix": "swagger", 
    "Description": "this is swagger for netcore", 
    "Title": "Demo swagger", 
    "Version": "first version", 
    "TermsOfService": "netcore.com", 
    "Contact": { 
      "Email": "swagger@netcore.com", 
      "Name": "swagger", 
      "Url": "swagger@netcore.com" 
    }, 
    "License": { 
      "Name": "", 
      "Url": "" 
    }    
  }

再次执行dotnet run 命令运行,可以看见右上角默认支持认证,点击输入 jwt 即可

2

支持功能

2.1

暗黑主题

SwaggerOption 配置节点中增加 IsDarkTheme 等于 true 即可

代码语言:javascript
复制
 "IsDarkTheme": true,

2.2

文件上传按钮

请求参数类型为 IFormFile,Swagger 会自动识别为为其添加文件按钮

代码语言:javascript
复制
    /// <summary>
    /// 单文件
    /// </summary>
    public IFormFile File { get; set; }

2.3

添加公共 Url 参数

一般接口会有一些公共参数,但一般接口内部不会用到,例如签名参数,就没必要每个请求实体都包含这些业务接口不使用的参数,可以通过以下节点添加 swagger 公共参数还不污染请求实体

代码语言:javascript
复制
"Query": [ //swagger默认url公共参数 
      { 
        "Name": "sign", 
        "Description": "签名" 
      }, 
      { 
        "Name": "timestamp", 
        "Description": "客户端时间戳" 
      } 
    ]

2.4

添加公共头参数

添加以下配置节点即可把公共参数添加进 swagger 头信息

代码语言:javascript
复制
 "Headers": [ //swagger默认头参数 
      { 
        "Name": "User", 
        "Description": "用户" 
      } 
    ],

就是这么简单,swagger功能都通过appsetting.json配置即可。

此库只是NetPro项目下的一个扩展功能,其中还包括很多其他常用组件与开箱即用打包所有组件的NetPro.Web.Api组件更加方便容易的开发Api接口

项目地址:

https://github.com/LeonKou/NetPro https://github.com/LeonKou/NetPro.Swagger github

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师高级俱乐部 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档