.netcore2.1 接口添加api-version版本控制
程序员文章站
2022-12-21 08:31:15
使用Guget 添加Microsoft.AspNetCore.Mvc.Versioning 包引用,由于我的.netcore是2.1版本,避免出现不兼容问题,版本添加我选的也是2.1版本 在Startup.cs中的 public void ConfigureServices(IServiceColl ......
- 使用guget 添加microsoft.aspnetcore.mvc.versioning 包引用,由于我的.netcore是2.1版本,避免出现不兼容问题,版本添加我选的也是2.1版本
- 在startup.cs中的 public void configureservices(iservicecollection services)添加如下代码
services.addapiversioning(o => { o.reportapiversions = true; o.assumedefaultversionwhenunspecified = true; o.defaultapiversion = new apiversion(2, 0); //设置默认版本 //在请求头(http header)中使用版本控制,在查询字符串中指定版本号的方式将不再可用 // o.apiversionreader = new headerapiversionreader("x-api-version"); o.apiversionreader = apiversionreader.combine(new querystringapiversionreader(), //同时支持(http header)中使用版本控制,和查询字符串中指定版本号 new headerapiversionreader() { headernames = { "x-api-version" } }); });
- 创建valuev1和valuev2两个测试控制器
using system; using system.collections.generic; using system.linq; using system.threading.tasks; using microsoft.aspnetcore.http; using microsoft.aspnetcore.mvc; namespace webapiversion.controllers { [apiversion("1.0",deprecated =true)] [route("api/values")] [apicontroller] public class valuesv1controller : controllerbase { [httpget] public ienumerable<string> get() { return new string[] { "value1 from version 1", "value2 from version 1" }; } } }
using system; using system.collections.generic; using system.linq; using system.threading.tasks; using microsoft.aspnetcore.http; using microsoft.aspnetcore.mvc; namespace webapiversion.controllers { [apiversion("2.0")] [route("api/values")] [apicontroller] public class valuesv2controller : controllerbase { [httpget] public ienumerable<string> get() { return new string[] { "value1 from version 2", "value2 from version 2" }; } } }
- 接口默认返回设置的为2.0,现在请求1.0接口,使用header方式
- 使用查询字符串方式请求
- 使用apiversionneutral指定不需要版本控制的api
[apiversionneutral] [route("api/[controller]")] [apicontroller] public class healthcheckcontroller : controllerbase { public string get() { return "good"; } }
推荐阅读
-
ASP.NET Core 实战:构建带有版本控制的 API 接口
-
.netcore2.1 接口添加api-version版本控制
-
MFC.bsc文件的生成方法,目前认为是临时文件,自动生成的,可以添加忽略版本控制。
-
Eclipse+Subclipse插件,设定一个文件取消其版本控制,添加到svn:ignor。
-
.netcore2.1 接口添加api-version版本控制
-
说说APP接口中的版本控制
-
说说APP接口中的版本控制
-
tp5里面,怎么做接口版本控制
-
ASP.NET Core 实战:构建带有版本控制的 API 接口
-
我的第一个python web开发框架(23)——代码版本控制管理与接口文档