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

ASP .NET Core 8集成Swagger全攻略

Swagger (现在称为 OpenAPI) 是一个用于描述 RESTful API 的规范,ASP.NET Core 内置支持通过 Swashbuckle 库生成 Swagger 文档。以下是在 ASP.NET Core 8 中实现 Swagger 的完整步骤。

1、添加Swagger NuGet 包

dotnet add package Swashbuckle.AspNetCore

2、添加Swagger服务和JWT认证支持

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(option =>
{option.SwaggerDoc("v1", new OpenApiInfo{Version = "v1",Title = "后台管理平台 API"});//使用XML注释foreach (var name in Directory.GetFiles(AppContext.BaseDirectory, "*.*", SearchOption.AllDirectories).Where(f => Path.GetExtension(f).ToLower() == ".xml")){option.IncludeXmlComments(name, includeControllerXmlComments: true);}OpenApiSecurityScheme securityScheme = new OpenApiSecurityScheme{Name = "JWT Authentication",Description = "Enter JWT Bearer token **_only_**",In = ParameterLocation.Header,Type = SecuritySchemeType.Http,Scheme = "bearer",BearerFormat = "JWT",Reference = new OpenApiReference{Id = JwtBearerDefaults.AuthenticationScheme,Type = ReferenceType.SecurityScheme}};option.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme);option.AddSecurityRequirement(new OpenApiSecurityRequirement{{securityScheme, Array.Empty<string>()}});
});

3、启用Swagger中间件

var app = builder.Build();// 开发环境下启用 Swagger,通常生产环境不推荐启用Swagger
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI(options =>{options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");options.DocumentTitle = "后台管理平台 API";});
}

4、启用XML文档注释

在项目文件中启用XML文档生成

<PropertyGroup><GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

或者在Visual Studio打开项目的属性窗口,在“生成”选项的“输出”栏目下,勾选“文档文件”

5、在API方法上添加XML注释

/// <summary>
/// 授权认证管理
/// </summary>
public class AuthController : BaseController
{/// <summary>/// 获取版本号/// </summary>/// <returns></returns>[HttpGet][AllowAnonymous]public ResponseResult<string> GetVersion(){try{return ResponseResult<string>.Success("1.0.0");}catch (Exception ex){_logger.LogError("Get version error: {error}", ex.Message);return ResponseResult<string>.Fail(ex.Message);}}
}

6、运行效果

http://www.dtcms.com/a/282782.html

相关文章:

  • 从零开发足球比分APP:REST API与WebSocket的完美搭配
  • HAProxy简介及配置文件详解
  • ESP‑IDF 默认的连接流程是
  • 2_概要设计编写提示词_AI编程专用简化版
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • __is_constexpr(x)宏介绍---max()宏扩展
  • Linux 常用指令
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • Java基础语法补充v2
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • The 2024 ICPC Asia Shenyang Regional Contest B. Magical Palette
  • Docker容器技术讲解
  • Liunx练习项目6-创建dns服务器
  • 主机安全---开源wazuh安装
  • 深入理解概率图模型:贝叶斯网络因子分解、d-分离与马尔可夫毯
  • 基于用户空间操作IIC接口调试云台电机
  • 7.16 Java基础 | 集合框架(上)
  • 微服务架构中实现跨服务的字段级权限统一控制
  • PyTorch深度学习框架入门案例实战
  • 第一章 【vue】基础(超详细)
  • 【动归解题套路框架】【带备忘录的递归】【最优子结构】【自下而上DP table】
  • Spring核心注解@RequestMapping详解
  • Java 二维数组详解:从基础语法到实战应用,彻底掌握多维数据结构
  • 边缘计算革命:AWS Snowcone在智慧工厂的落地实践(2025工业4.0实战指南)
  • 笔试——Day10
  • 【AI交叉】天文学:人工智能如何赋能星辰大海的探索
  • 如何关闭Elasticsearch的安全认证的解决方法
  • Maven入门指南:生命周期、阶段和执行顺序详解
  • 基于深度学习的情感分析模型:从文本数据到模型部署
  • leetcode:990.等式方程的可满足性[图]