当前位置: 首页 > article >正文

Swagger配置且添加小锁(asp.net)(笔记)

此博客是基于 asp.net core web api(.net core3.1)框架进行操作的。

一、安装Swagger包

在 NuGet程序包管理中安装下面的两个包:

swagger包:Swashbuckle.AspNetCore

swagger包过滤器:Swashbuckle.AspNetCore.Filters

二、swagger注册

在 Startup.cs文件的 ConfigureServices方法中进行 swagger注册。

#region swagger注入
services.AddSwaggerGen(c =>
{
    #region 添加文档信息   
    c.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "aspNetCURD",
        Version = "v1",
        Description = "RESTful API"
    });
    #endregion

    #region 添加 Controller注释
    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";  // 获取 项目名 + .xml 的文件
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 文件 path
    c.IncludeXmlComments(xmlPath); // 添加 Controller注释
    #endregion

    #region 添加 swagger小锁  不需要授权的可以不要小锁
    var openApiSecurity = new OpenApiSecurityScheme
    {
        Description = "JWT认证授权,使用直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"",
        Name = "Authorization",  //jwt 默认参数名称
        In = ParameterLocation.Header,  //jwt默认存放Authorization信息的位置(请求头)
        Type = SecuritySchemeType.ApiKey
    };

    c.AddSecurityDefinition("oauth2", openApiSecurity);
    c.OperationFilter<AddResponseHeadersFilter>();
    c.OperationFilter<AppendAuthorizeToSummaryOperationFilter>();
    c.OperationFilter<SecurityRequirementsOperationFilter>();
    #endregion

});
#endregion

三、swagger 注入管道

在 app.UseRouting() 之后,app.UseEndpoints() 之前,将swagger注入管道。

app.UseRouting();

#region swagger管道注入
// 启用Swagger中间件
app.UseSwagger();

// 配置SwaggerUI
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "aspNetCURD");
    c.RoutePrefix = string.Empty; //路由前缀设置为空
});
#endregion

四、在项目的属性中添加 .xml路径

打开项目的属性,找到 生成/输出,在 "XML文档文件路径" 处配置上 xml路径。

XML文档文件路径为:项目名称 + .xml

五、最后效果

(1)没有使用授权小锁时

(2)使用了授权小锁后

#若有错误或不足,欢迎大佬斧正。


http://www.kler.cn/a/325854.html

相关文章:

  • gvim添加至右键、永久修改配置、放大缩小快捷键、ctrl + c ctrl +v 直接复制粘贴、右键和还原以前版本(V)冲突
  • Linux下编译MFEM
  • OpenSSL 自签名
  • 了解什么是Python(简介)
  • 【Linux内核剖析】深入分析inet_init的处理机制
  • 【Linux庖丁解牛】—Linux基本指令(下)!
  • VUE 整合 ECharts
  • Qt多线程与数据库
  • Vue.js组件开发
  • Django 和 ASP.NET Zero 的对比分析
  • Python 复制PDF中的页面
  • 基于Vue3内置的lodash函数库实现防抖节流
  • centos9 nginx 版本
  • 深入解析Excel文件格式:.xls与.xlsx的差异与应用指南
  • 网络战时代的端点安全演变
  • HTML流光爱心
  • 【VUE】axios组件
  • 解决 Pandas 中的 XLRDError:处理 “Excel xlsx file; not supported” 错误
  • 知识产权的力量
  • 四十五、多云/混合云架构设计(多云监控平台与工具介绍)
  • 动态规划算法专题(一):斐波那契数列模型
  • 机器学习课程学习周报十四
  • 常见电脑品牌BIOS设置与进入启动项快捷键
  • 物理学基础精解【23】
  • golang学习笔记27-反射【重要】
  • C++ | Leetcode C++题解之第447题回旋镖的数量