1、管理 NuGet 程序包
Microsoft.AspNetCore.Mvc.Versioning 【注意版本号:4.0.0-preview8.19405.7】
Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer 【注意版本号:4.0.0-preview8.19405.7】
如果版本安装错了,运行程序会报错,未经处理的异常
*
2、Startup.cs(ConfigureServices)
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(options =>
{
options.UseCentralRoutePrefix(new RouteAttribute("api/v1/[controller]"));
});
services.AddApiVersioning(options =>
{
options.ReportApiVersions = true; //可选配置,设置为true时,header返回版本信息
options.ApiVersionReader = new HeaderApiVersionReader("api-version");//HTTP Header报头传递
options.AssumeDefaultVersionWhenUnspecified = true;//是否启用未指明版本API,指向默认版本
options.DefaultApiVersion = new ApiVersion(1, 0);
})
.AddVersionedApiExplorer(option =>
{
option.GroupNameFormat = "'v'VVVV";//api组名格式
option.AssumeDefaultVersionWhenUnspecified = true;//是否提供API版本服务
});
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});
}
*
3、controller控制器添加ApiVersion特性
在 URL 中追加 api-version=2
*
*
4、通过HTTP Headers来实现版本控制
*
*
*
*
5、参数特性
MapToApiVersion参数:支持多个版本的单控制器
Deprecated参数:弃用,废弃;用Deprecated修饰控制器;仍然可以调用该版本,只是一种让 调用API 用户意识到以下版本在将来会被弃用。
ApiVersionNeutral特性:不支持版本控制;添加 ApiVersionNeutral 属性以从版本控制中退出。
*
*
来源:CSDN
作者:KingCruel
链接:https://blog.csdn.net/KingCruel/article/details/103610489