ASP.NET Core WebApi版本控制的实现
前言:
在日常项目开发中,随着项目需求不断的累加、不断的迭代;项目服务接口需要向下兼容历史版本;前些时候就因为api接口为做版本管理导致接口对低版本兼容处理不友好。
最近就像了解下如何实现webapi版本控制,那么版本控制有什么好处呢?
webapi版本控制的好处
- 有助于及时推出功能, 而不会破坏现有系统,兼容性处理更友好。
- 它还可以帮助为选定的客户提供额外的功能。
接下来就来实现版本控制以及在swagger ui中接入webapi版本
一、webapi版本控制实现
通过microsoft.aspnetcore.mvc.versioning实现webapi 版本控制
创建webapi项目,添加nuget包:microsoft.aspnetcore.mvc.versioning
修改项目startup文件,使用microsoft.aspnetcore.mvc.versioning
webapi设置版本:
a)通过apiversion标记指定指定控制器或方法的版本号;url参数控制版本(querystringapiversionreader),如下:
通过参数api-version参数指定版本号;调用结果:
b)通过url path segment控制版本号(urlsegmentapiversionreader):为控制器添加路由方式如下,apiversion为固定格式
调用方式:通过调用路径传入版本号,如:http://localhost:5000/api/v1/weatherforecast
c)通过header头控制版本号:在startup中设置(headerapiversionreader、mediatypeapiversionreader)
调用方式,在请求头或中mediatype中传递api版本,如下:
其他说明:
a)reportapiversions设置为true时, 返回当前支持版本号(api-supported-versions);deprecated 参数设置为true表示已弃用,在响应头中也有显示(api-deprecated-versions):
b)maptoapiversion标记:允许将单个api操作映射到任何版本(可以在v1的控制器中添加v3的方法);在上面控制器中添加以下代码,访问v3版本方法
c)注意事项:
1、路径中参数版本高于,其他方式设置版本
2、多种方式传递版本,只能采用一种方式传递版本号
3、swaggerui中maptoapiversion设置版本不会单独显示
二、swagger ui中版本接入
1、添加包:swashbuckle.aspnetcore、microsoft.aspnetcore.mvc.versioning.apiexplorer
2、修改startup代码:
3、运行效果:
其他:
示例地址:https://github.com/cwsheng/webapiversiondemo
到此这篇关于asp.net core webapi版本控制的实现的文章就介绍到这了,更多相关asp.net core webapi版本控制内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
ASP.NET Core WebApi版本控制
-
Hangfire在ASP.NET CORE中的简单实现方法
-
ASP.NET MVC中将控制器分离到类库的实现
-
ASP.NET Core中自定义路由约束的实现
-
详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁
-
Asp.Net Core中基于Session的身份验证的实现
-
在ASP.NET Core 中发送邮件的实现方法(必看篇)
-
ASP.NET Core基于微软微服务eShopOnContainer事件总线EventBus的实现
-
你所不知道的ASP.NET Core MVC/WebApi基础系列 (一)
-
ASP.NET Core中自定义路由约束的实现