ASP.NET Core WebApi版本控制的实现

2022-07-24,,,,

前言:

 在日常项目开发中,随着项目需求不断的累加、不断的迭代;项目服务接口需要向下兼容历史版本;前些时候就因为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版本控制的实现.doc》

下载本文的Word格式文档,以方便收藏与打印。