.Net Core中的Api版本控制

 原文链接:

使用Nuget安装Api版本控制库

.NET Core Mvc中,微软官方提供了一个可用的Api版本控制库Microsoft.AspNetCore.Mvc.Versioning。 这里我们可以使用Nuget安装这个包。

PM> Install-Package Microsoft.AspNetCore.Mvc.Versioning

修改Startup类

Microsoft.AspNetCore.Mvc.Versioning库安装完成之后,下一步我们来添加Api版本控制服务。

这里我们需要在Startup类的ConfigureService方法中添加以下代码。

    services.AddApiVersioning(o => {         o.ReportApiVersions = true;         o.AssumeDefaultVersionWhenUnspecified = true;         o.DefaultApiVersion = new ApiVersion(1, 0);     });

代码解释

ReportApiVersion属性是一个布尔类型,如果设置为true, 在Api请求的响应头部,会追加当前Api支持的版本, 例

Response Header api-supported-versions: 1.0 content-type: application/json; charset=utf-8 date: Sat, 06 Oct 2018 05:24:21 GMT server: Kestrel status: 200 x-powered-by: ASP.NET

AssumeDefaultVersionWhenUnspecified属性是为了标记当客户端没有指定版本号的时候,是否使用默认版本号
DefaultApiVersion属性即默认版本号

创建多版本Api

这里为了测试.Net Core Mvc的Api版本控制库,我们创建如下2个Controller。

     [ApiVersion("1.0")]     [Route("api/values")]     [ApiController]     public class ValuesV1Controller : ControllerBase     {         [HttpGet]         public IEnumerable<string> Get()         {             return new string[] { "Value1 from Version 1", "value2 from Version 1" };         }     }         [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" };         }     }

代码解释

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信