推荐使用 Microsoft.AspNetCore.Mvc.Versioning 包实现 ASP.NET Core API 版本控制,支持 URL、查询参数、请求头等多种版本标识方式,需在 Program.cs 中注册服务并配置默认版本、弃用提示等,控制器通过 [ApiVersion] 特性声明版本支持。
ASP.NET Core 实现 API 版本控制,推荐使用官方支持的 Microsoft.AspNetCore.Mvc.Versioning 包,它轻量、灵活,与 MVC 深度集成,支持 URL、查询参数、请求头等多种版本标识方式。
在 Program.cs 中注册服务并配置基础行为:
AddApiVersioning 启用版本控制,设置默认版本(如 1.0)和是否报告支持的版本AssumeDefaultVersionWhenUnspecified = true,让无版本请求默认走 v1api-supported-versions 或 api-deprecated-versions 响应头,开启 ReportApiVersions = true
builder.Services.AddApiVersioning(options =>
{
options.DefaultApiVersion = new ApiVersion(1, 0);
options.AssumeDefaultVersionWhenUnspecified = true;
options.ReportApiVersions = true;
});
使用 [ApiVersion] 特性标注控制器或具体 Action,支持多个版本同时存在:
[ApiVersion("1.0")] 和 [ApiVersion("2.0")]
ProductsControllerV1 和 ProductsControllerV2,都路由到 /api/products
[MapToApiVersion("2.0")] 可将某个 Action 限
定只响应 v2 请求默认通过请求头 api-version 识别,但更常见的是 URL 路径(如 /api/v1/products)或查询参数(如 /api/products?api-version=1.0):
options.ApiVersionReader = new UrlSegmentApiVersionReader();,再用 [Route("api/v{version:apiVersion}/[controller]")]
new QueryStringApiVersionReader("api-version")
api-version: 2.0
对已废弃的版本,可通过特性明确标记,并由框架自动注入响应头:
[ApiVersion("1.0", Deprecated = true)]
ReportApiVersions = true 后,v1 接口响应头会包含 api-deprecated-versions: 1.0
基本上就这些。不复杂但容易忽略细节,比如忘了注册服务、没配路由模板、或多个版本控制器冲突——调试时留意日志里 ApiVersionMatcherPolicy 的匹配结果即可。
# 路由
# microsoft
# 状态码
# .net
# mvc
# 接口
# 多个
# 推荐使用
# 的是
# 客户端
# 也可
# 可选
# 再用
# 可将
# 可通过
# 并由
相关文章:
定制建站是什么?如何实现个性化需求?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何在IIS7上新建站点并设置安全权限?
网站设计制作企业有哪些,抖音官网主页怎么设置?
专业公司网站制作公司,用什么语言做企业网站比较好?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何配置IIS站点权限与局域网访问?
如何在橙子建站上传落地页?操作指南详解
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何在腾讯云服务器上快速搭建个人网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站主机选购指南与交易推荐:核心配置解析
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何选择PHP开源工具快速搭建网站?
活动邀请函制作网站有哪些,活动邀请函文案?
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何高效配置IIS服务器搭建网站?
如何在宝塔面板创建新站点?
建站之星安装后如何自定义网站颜色与字体?
如何高效搭建专业期货交易平台网站?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
制作网站外包平台,自动化接单网站有哪些?
如何通过FTP空间快速搭建安全高效网站?
Python文件管理规范_工程实践说明【指导】
制作网站怎么制作,*游戏网站怎么搭建?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站之星如何配置系统实现高效建站?
C++时间戳转换成日期时间的步骤和示例代码
如何选择高效响应式自助建站源码系统?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
魔毅自助建站系统:模板定制与SEO优化一键生成指南
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
宝塔面板创建网站无法访问?如何快速排查修复?
模具网站制作流程,如何找模具客户?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
重庆市网站制作公司,重庆招聘网站哪个好?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何在阿里云ECS服务器部署织梦CMS网站?
金*站制作公司有哪些,金华教育集团官网?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
如何在局域网内绑定自建网站域名?
宁波免费建站如何选择可靠模板与平台?
如何快速完成中国万网建站详细流程?
微课制作网站有哪些,微课网怎么进?
Python lxml的etree和ElementTree有什么区别
IOS倒计时设置UIButton标题title的抖动问题
如何在橙子建站中快速调整背景颜色?
香港服务器WordPress建站指南:SEO优化与高效部署策略
*请认真填写需求信息,我们会在24小时内与您取得联系。