ASP.NETAPIversioning为您提供了一种功能强大但易于使用的方法,用于将API版本控制语义添加到使用ASP.NET构建的新的和现有的REST服务中。API版本控制扩展定义了简单的元数据属性和约定,用于描述您的服务实现了哪些API版本。
PackageReferenceInclude="Microsoft.AspNetCore.Mvc.Versioning"Version="4.2.0"/PackageReferenceInclude="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer"Version="4.2.0"/2.1.1常用配置
[ApiVersion("1.1")]//设置版本号[ApiVersionNeutral]//退出版本控制[MapToApiVersion("1.1")]//设置独立版本[ApiVersion("1.0",Deprecated=true)]//api版本已经被弃用HttpContext.GetRequestedApiVersion().ToString();//访问版本信息2.2QueryString来实现版本控制2.2.1ConfigureServices中配置
//Versioning用来实现API的版本控制services.AddApiVersioning(options={options.DefaultApiVersion=newApiVersion(1,1);//默认版本号options.AssumeDefaultVersionWhenUnspecified=true;//此选项将用于不提供版本的请求,默认情况下假定API的版本为1.0options.ReportApiVersions=true;//当设置为true时候,api将返回响应标头中支持的版本信息//下面这句默认不写也可以//options.ApiVersionReader=newQueryStringApiVersionReader(parameterNames:"api-version");//该名称用于查询时候使用});2.2.2控制器设置版本
namespaceNetCore_SwaggerVersion.Controllers.v1{///summary///版本1.1////summary[Route("api/[controller]")][ApiController][ApiVersion("1.1")]//可以设置多个[ApiVersion("1.2")]publicclassTestController:ControllerBasenamespaceNetCore_SwaggerVersion.Controllers.v2{///summary///版本2.0////summary[Route("api/[controller]")][ApiController][ApiVersion("2.6")]publicclassTestController:ControllerBase
不同命名空间下可以存在相同的控制器
2.2.3特定方法设置版本[MapToApiVersion("1.1")][HttpGet]publicIEnumerablestringGet()2.2.4设置不受版本控制
[ApiVersionNeutral]//退出版本控制[ApiController][Route("api/[controller]/[action]")]publicclassWeatherForecastController:ControllerBase2.3.5访问地址
转载请注明:http://www.0431gb208.com/sjslczl/887.html