C#MVC项目引用Swagger的详细步骤
目录
- 一、安装Swagger依赖包
- 二、配置Swagger服务
- 三、启用XML注释
- 四、调整启动配置
- 五、验证与访问
- 常见问题解决
以下是基于ASP.NET Core项目集成Swagger的详细步骤(已适配当前项目结构):

一、安装Swagger依赖包
- 通过NuGet安装
右键点击项目 → 管理NuGet程序包 → 搜索Swashbuckle.AspNetCore→ 安装最新稳定版
二、配置Swagger服务
-
修改Program.cs
var builder = WebApplication.CreateBuilder(args);// 添加Swagger服务配置 builder.Services.AddSwaggerGen(c => {c.SwaggerDoc("v1", new OpenApiInfo {Version = "v1",Title = "图书管理API",Description = "包含分页查询等核心功能",Contact = new OpenApiContact { Name = "开发者", Email = "your@email.com" }});// 配置XML注释(需先启用项目属性中的XML生成)var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);c.IncludeXmlComments(xmlPath, true); });// ...其他服务注册(如DbContext等) -
配置中间件
在var app = builder.Build();之后添加:app.UseSwagger(); app.UseSwaggerUI(c => {c.SwaggerEndpoint("/swagger/v1/swagger.json", "Book API v1");c.RoutePrefix = ""; // 将Swagger设为根路径访问 });
三、启用XML注释
-
修改项目文件
右键项目 → 属性 → 生成 → 勾选 XML文档文件 → 路径保留默认值

(或在
.csproj中添加):<PropertyGroup><GenerateDocumentationFile>true</GenerateDocumentationFile><NoWarn>$(NoWarn);1591</NoWarn> </PropertyGroup> -
为BookController添加注释
/// <summary> /// 获取分页图书数据 /// </summary> /// <param name="pageNumber">页码(默认1)</param> /// <param name="pageSize">每页条目数(默认10)</param> /// <returns>包含分页元数据的图书列表</returns> [HttpGet("paged")] public async Task<ActionResult<PagedResult<Book>>> GetPagedBooks(...)
四、调整启动配置
- 修改launchSettings.json
将profiles中的applicationUrl统一为:
删除所有"applicationUrl": "https://localhost:7044;http://localhost:5231"launchUrl属性,确保启动时直接加载Swagger UI
五、验证与访问
- 运行项目
按 F5 启动 → 浏览器会自动打开https://localhost:7044显示Swagger UI
你将看到:
• ✅GET /Book/paged分页接口
• ✅ 参数说明(含默认值)
• ✅ 模型结构展示(Book和PagedResult)
常见问题解决
• 404错误:检查 SwaggerEndpoint 路径是否与 SwaggerDoc 版本号匹配
• 注释不显示:确认XML文件生成路径与代码中的 xmlPath 一致
• 数据库连接失败:已配置的 TrustServerCertificate=True 可兼容本地SQL Server Express
通过以上配置,分页查询接口将获得完整的Swagger文档支持,前端开发者可直接在网页测试接口,无需Postman等工具。进阶功能(如JWT认证、版本控制)可参考OpenAPI规范扩展。
相关文章:
C#MVC项目引用Swagger的详细步骤
目录 一、安装Swagger依赖包二、配置Swagger服务三、启用XML注释四、调整启动配置五、验证与访问常见问题解决 以下是基于ASP.NET Core项目集成Swagger的详细步骤(已适配当前项目结构): 一、安装Swagger依赖包 通过NuGet安装 右键点击项目…...
golang 对象池sync.Pool
Golang中的sync.Pool是什么? sync.Pool 是 Go 标准库中提供的一个对象池(Object Pool)实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收(GC)的压力。它的主要特点是: 临时对…...
聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
【全球云观察 | 科技热点关注】 随着近年来AI与大模型的兴起,云计算行业正在发生着一场大变局。 “在2025年春节期间,DeepSeek两周火爆全球,如何进行私域部署成了企业关心的问题。”紫光云公司总裁王燕平强调指出,AI与…...
去重新闻数据中重复的正文内容(body 字段),并把唯一的新闻内容保存到一个新的 JSON 文件中
示例代码: import os import json import nltk from tqdm import tqdmdef wr_dict(filename,dic):if not os.path.isfile(filename):data []data.append(dic)with open(filename, w) as f:json.dump(data, f)else: with open(filename, r) as f:data json.l…...
解决前后端时区不一致问题
前后端时区不一致导致: 》数据不显示在前端 》页面显示时间有误 》一些对时间有要求的方法,无法正确执行,出现null值,加上我们对null值有判断/注解,程序就会报错中断,以为是业务逻辑问题,其实…...
有哪些反爬机制可能会影响Python爬取视频?如何应对这些机制?
文章目录 前言常见反爬机制及影响1. IP 封禁2. 验证码3. 请求头验证4. 动态加载5. 加密与混淆6. 行为分析 应对方法1. 应对 IP 封禁2. 应对验证码3. 应对请求头验证4. 应对动态加载5. 应对加密与混淆6. 应对行为分析 前言 在使用 Python 爬取视频时,会遇到多种反爬…...
STL之序列式容器(Vector/Deque/List)
序列式容器 序列式容器包括:静态数组 array 、动态数组 vector 、双端队列 deque 、单链表 forward_ list 、双链表 list 。这五个容器中,我们需要讲解三个 vector 、 deque 、 list 的使 用,包括:初始化、遍历、尾部插入与删除、…...
小试牛刀-抽奖程序
编写抽奖程序 需求:设计一个抽奖程序,点击抽奖按钮随机抽取一个名字作为中奖者 目标:了解项目结构,简单UI布局,属性方法、事件方法,程序运行及调试 界面原型 待抽奖: 点击抽奖按钮&#x…...
Vue 3 中 ref 与 reactive 的对比
Vue 3 中 ref 与 reactive 的对比 Vue 3 中 ref 与 reactive 的对比一、定义和基本使用refreactive 二、响应式原理refreactive 三、适用场景refreactive 四、注意事项refreactive Vue 3 中 ref 与 reactive 的对比 在 Vue 3 中,ref 和 reactive 都是用于创建响应式…...
centos-stream-9上安装nvidia驱动和cuda-toolkit
这里写目录标题 驱动安装1. 更新系统2. NVIDIA GPU安装检查系统是否安装了 NVIDIA GPU2.1 首先,使用以下命令更新 DNF 软件包存储库缓存:2.2 安装编译 NVIDIA 内核模块所需的依赖项和构建工具2.3 在 CentOS Stream 9 上添加官方 NVIDIA CUDA 软件包存储库…...
从 MySQL 切换到国产 YashanDB 数据库时,需要在数据库字段和应用连接方面进行适配 ,使用总结
YashanDB | 崖山数据库系统 - 崖山科技官网崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景ÿ…...
【学习笔记】头文件中定义函数出现重复定义报错
目录 错误复现原因解决方案inlinestatic 扩展参考 错误复现 现在有一个头文件 duplicate_define.h 和两个源文件 duplicate_define_1.cpp 和 duplicate_define_2.cpp。 两个源文件都引入了头文件 duplicate_define.h,且在各自的函数中调用了定义在头文件中的全局函…...
游戏开发中 C#、Python 和 C++ 的比较
🎬 Verdure陌矣:个人主页 🎉 个人专栏: 《C/C》 | 《转载or娱乐》 🌾 种完麦子往南走, 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 摘要: 那么哪种编程语言最适合游戏开发…...
linux上anaconda安装、卸载、及不同用户共享同个anaconda的操作
这里写目录标题 1、anaconda安装2、所有账号可以访问condastep1: 创建文件step2: 追加以下内容:step3: 赋予执行权限:step4: 生效方式: 3、anaconda3的卸载(1)删除安装文件夹(2)在当前终端会话中…...
利用持久变量绕过长度限制 + unicode特性绕过waf-- xyctf 出题人已疯12 复现
本文章附带TP(Thinking Process)! 黑盒查看网站不具有功能,需要审计代码 # 定义/attack路径的路由 bottle.route(/attack) def attack():# 从请求的查询参数中获取payloadpayload bottle.request.query.get(payload)# 检查payload是否存在,长度是否小于25ÿ…...
大数据技术与Scala
集合高级函数 过滤 通过条件筛选集合元素,返回新集合。 映射 对每个元素应用函数,生成新集集合 扁平化 将嵌套集合展平为单层集合。 扁平化映射 先映射后展平,常用于拆分字符串。 分组 按规则将元素分组为Map结构。 归约 …...
DeepSeek 都开源了哪些技术?
DeepSeek作为中国领先的人工智能企业,通过开源策略推动了全球AI技术的普及与创新。以下是其官方公布的主要开源项目及其技术内容、应用场景和社区反馈的详细分析: 1. FlashMLA 技术描述:专为Hopper架构GPU优化的高效MLA(Multi-Layer Attention)解码内核,针对可变长度序列…...
P8754 [蓝桥杯 2021 省 AB2] 完全平方数
题目描述 思路 一看就知道考数学,直接看题解试图理解(bushi) 完全平方数的质因子的指数一定为偶数。 所以 对 n 进行质因数分解,若质因子指数为偶数,对结果无影响。若质因子指数为奇数,则在 x 中乘以这个质因子,保证指…...
ADGaussian:用于自动驾驶的多模态输入泛化GS方法
25年4月来自香港中文大学和浙大的论文“ADGaussian: Generalizable Gaussian Splatting for Autonomous Driving with Multi-modal Inputs”。 提出 ADGaussian 方法,用于可泛化的街道场景重建。所提出的方法能够从单视图输入实现高质量渲染。与之前主要关注几何细…...
0501路由-react-仿低代码平台项目
文章目录 1 react路由1.1 核心库:React Router安装 1.2 基本路由配置路由入口组件定义路由 1.3 导航方式使用 <Link> 组件编程式导航 1.4 动态路由参数定义参数获取参数 1.5 嵌套路由父路由配置子路由占位符 1.6 重定向与404页面重定向404页面 1.7 路由守卫&a…...
MySQL NULL 值处理
MySQL NULL 值处理 引言 在数据库管理系统中,NULL 值是一个非常重要的概念。在 MySQL 中,NULL 值代表未知、不存在或未定义的值。正确处理 NULL 值对于保证数据的准确性和完整性至关重要。本文将详细介绍 MySQL 中 NULL 值的处理方法,包括 …...
OpenAI即将上线新一代重磅选手——GPT-4.1
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【蓝桥杯】赛前练习
1. 排序 import os import sysn=int(input()) data=list(map(int,input().split(" "))) data.sort() for d in data:print(d,end=" ") print() for d in data[::-1]:print(d,end=" ")2. 走迷宫BFS import os import sys from collections import…...
Windows 系统下用 VMware 安装 CentOS 7 虚拟机超详细教程(包含VMware和镜像安装包)
前言 资源 一、准备工作 (一)下载 VMware Workstation (二)下载 CentOS 7 镜像 二、安装 VMware Workstation(比较简单,按下面走即可) 三、创建 CentOS 7 虚拟机 四、安装 CentOS 7 系统…...
HTTP Content-Type:深入解析与应用
HTTP Content-Type:深入解析与应用 引言 在互联网世界中,数据传输是至关重要的。而HTTP协议作为最常用的网络协议之一,其在数据传输过程中扮演着关键角色。其中,HTTP Content-Type头字段在数据传输中发挥着至关重要的作用。本文将深入解析HTTP Content-Type,并探讨其在实…...
【AI+Java学习】AI时代Spring AI学习路径
在AI时代下,学习Spring AI需要结合其核心功能、生态系统和实际应用场景,以下是系统性学习路径及关键要点: 一、环境搭建与基础入门 开发环境配置 JDK与构建工具:确保安装JDK 17或更高版本,并配置Maven或Gradle作为项目…...
五、用例篇
Bug等级:崩溃、严重、一般、次要 bug的生命周期 面试高频考题:跟开发产生争执怎么办? (1)反思自己,是不是bug描述写的不清楚 (2)站在用户思考问题,反问开发人员:“如果你是用户,你能接受这样…...
【QT】学习笔记1
QT概述 Qt是一个1991年由QtCompany开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(…...
英伟达开源253B语言模型:Llama-3.1-Nemotron-Ultra-253B-v1 模型情况
Llama-3.1-Nemotron-Ultra-253B-v1 模型情况 1. 模型概述 Llama-3.1-Nemotron-Ultra-253B-v1 是一个基于 Meta Llama-3.1-405B-Instruct 的大型语言模型 (LLM),专为推理、人类对话偏好和任务(如 RAG 和工具调用)而优化。该模型支持 128K 令…...
质检LIMS系统在半导体制造行业的应用 半导体质量革命的现状
在半导体这个“工业皇冠上的明珠”领域,纳米级的精度要求与质量管控如同硬币的两面。随着芯片制程向3nm、2nm演进,传统质检模式已难以满足海量数据、复杂工艺的质量追溯需求。质检LIMS实验室系统作为质量管理的中枢神经,正在重构半导体制造的…...
