毕业论文
您现在的位置: 版本控制 >> 版本控制前景 >> 正文 >> 正文

aspnetwebapi中的版本管

来源:版本控制 时间:2022/5/27
儿童白癜风的饮食 http://m.39.net/pf/a_9360007.html

应用是演进的,通常我们用版本号来管理。api也是演进的,这篇博文就说说asp.netwebapi演进时的版本管理。

asp.netwebapi的版本管理是通过微软的一个包来实现的。

Install-PackageMicrosoft.AspNetCore.Mvc.Versioning

通过url参数:api/order/api-version=2.0

在startup中注入ApiVersion

publicvoidConfigureServices(IServiceCollectionservices){services.AddApiVersioning();services.AddControllers();}

在ProductController中标注版本特性

usingMicrosoft.AspNetCore.Mvc;usingMicrosoft.Extensions.Logging;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;namespaceAPIVersionDemo.Controllers{[ApiController][Route("api/[controller]")][ApiVersion("1.0",Deprecated=true)][ApiVersion("2.0")]publicclassProductController:ControllerBase{privatereadonlyILoggerProductController_logger;publicProductController(ILoggerProductControllerlogger){_logger=logger;}//1.0的api[HttpGet("{id}")]publicProductQueryProduct([FromRoute]intid){_logger.LogInformation("v1.0查询产品");returnnewProduct(){ID=id,Name="A物品",Price=.20m};}//2.0的api[HttpGet("{id}")][MapToApiVersion("2.0")]publicProductQueryProductv2([FromRoute]intid){_logger.LogInformation("v2.0查询产品");returnnewProduct2(){ID=id,Name="A物品",Price=.20m,Description="产自山西"};}}///summary///1.0的产品类////summarypublicclassProduct{publicintID{get;set;}publicstringName{get;set;}publicdecimalPrice{get;set;}}///summary///2.0的产品类////summarypublicclassProduct2:Product{publicstringDescription{get;set;}}}通过

转载请注明:http://www.0431gb208.com/sjsbszl/363.html