应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

net core webapi版本控制

7206人阅读 2019/11/8 15:17 总访问:5203687 评论:0 收藏:2 手机
分类: .NET Core

webapi的版本控制好处很多,要实现其实也比较简单。


在webapi中根据不同的版本创建文件夹。

然后在不同的api里边添加不同的路由


V1里边:

V2里边


效果如下:

v1版本:

V2版本:

当然如果需要加入更多版本消息可以借助:Microsoft.AspNetCore.Mvc.Versioning -Version

下载: Install-Package Microsoft.AspNetCore.Mvc.Versioning -Version 2.2.0

注意:不同core版本你应该去下载不同的Microsoft.AspNetCore.Mvc.Versioning版本,否者一样的代码都会报错,比如在core3.1下去下载2.2.0版本就会报错。如果想要下载最新版本可以不接版本号。比如core3.1下是可以去使用Microsoft.AspNetCore.Mvc.Versioning5.0版本的

  1. <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.0.0" />


在ConfigureServices中去引用

  1. services.AddApiVersioning(option =>
  2. {
  3.     //为true时API返回支持的版本信息
  4.     option.ReportApiVersions = true;
  5.     //不提供版本时,默认为1.0
  6.     option.AssumeDefaultVersionWhenUnspecified = true;
  7.     //请求中未指定版本时要使用的默认 API 版本
  8.     option.DefaultApiVersion = new ApiVersion(10);
  9. });

然后在webapi中指定一下:

tip:使用了这种方式后其实可以把根据路由区分版本删除掉,相当于是不同的区分方式,比如通过路由区分,还是header什么的


借助header实现版本控制:

需要配置 ApiVersionReader 选项。代码如下:

请求的时候在header里边提供api-version即可


但是, 现在查询字符串参数的方法进行版本控制将不起作用。一旦设置了header, 就不能指定查询字符串参数。如果您希望支持这两种情况, 而不是 HeaderApiVersionReader, 请使用 QueryStringOrHeaderApiVersionReader,当然也可以使用其他方式




core3.1版本参考代码下载地址:https://download.tnblog.net/resource/index/ba55ad0850ca4b71bc56855d0b4782d1


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

net core webapi路由

如下我们可以通过路由传递两个参数请求地址参考如下: https://localhost:5001/api/home/aojiancc2/2622最后两个可以作为参...

.net core webapi json相关,全局配置,时间格式化首字母小写等

在ConfigureServices中可以进行全局json配置,例如,全局处理一下事件格式问题services.AddMvc(option=&gt; { //option.F...

net core webapi运用自定义json格式

接上一篇net core api json相关,全局配置,时间格式化,首字母小写等:http://www.tnblog.net/aojiancc2/article/details/2...

net core webapi delete请求 错误 - 405.0 - Method Not Allowed

是因为被WebDAVModule模块限制了delete,put请求解决方法一:在iis中去干掉这个模块这样会全局影响所有网站解决方法二:单独...

.net core webapi post接口传递参数

我希望有个如你一般的人,如山间清爽的风,如古城温暖的光,从清晨到夜晚,从山野到书房,只要最后是你就好传递一个参数:...

.net core webapi 使用swagger调试时传递一个参数问题

默认提供的参数没有加双引号不行的,加个双引号就行了

.net core webapi无法请求delete接口

是因为WebDAV模块造成的,你可以在windows添加和删除功能把iis里边的WebDAV模块全局删除,也可以独立的配置某个项目不需要...

.net core webapi添加mvc,webapi添加转换mvc

添加静态资源访问1:添加wwwroot文件夹 直接右键添加文件夹即可2:然后在Configure中调用UseStaticFiles方法 app.UseStati...

.net core webapi 报错 TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

在接收参数前面加上[FromQuery]即可。不然默认是frombody的,又是get请求所有会报错 public async Task&lt;GeneralReturnM...

.net6net core webapi项目 使用 Newtonsoft.JsonNSON。 添加常用引用

第一步下载库:版本要和.net6匹配,一般.net6项目下载6.0.36即可。 install-package Microsoft.AspNetCore.Mvc.Newtonsoft...

.net core使用NSwagger实现Api文档生成与版本控制。生成xml文件

参考代码下载地址:https://download.tnblog.net/resource/index/ba55ad0850ca4b71bc56855d0b4782d1一:下载NSwag环境Insta...

为什么要使用webapi而不直接使用controller

彼年豆蔻,谁许谁地老天荒。webapi能做的事情,controller都能做,为什么要使用webapi而不直接使用controller呢?这就好比...

webapi转json格式

创建WebApi项目时出现的xml格式,每次都去转换比较麻烦在Global设置全局输出json格式://直接xml干掉为json GlobalConfigu...

控制台应用程序托管webapi

在没有iis的情况下,webapi是可以自托管的so,我们从写一个webapi程序开始:1、创建一个控制台应用程序,然后在控制台应用...