一,首先我们创建个枚举类
/// <summary>
/// Api版本枚举类
/// </summary>
public enum ApiVersions
{
/// <summary>
/// 版本V1
/// </summary>
V1=1,
/// <summary>
/// 版本V2
/// </summary>
V2=2
}
.二,然后添加如下代码
builder.Services.AddSwaggerGen(options => {
/*
//只有参数里的V1是要和下面配置路径保持一致,
//剩下的乱写也不报错 但是不推荐
options.SwaggerDoc("V1", new OpenApiInfo
{
Title = $"项目名",
Version = "V1",
Description = $"项目名:V1版本"
});
*/
//生成多个文档显示
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//添加文档介绍
options.SwaggerDoc(version, new OpenApiInfo
{
Title = $"项目名",
Version = version,
Description = $"项目名:{version}版本"
});
});
});
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(options => {
/*
options.SwaggerEndpoint($"/swagger/V1/swagger.json",$"版本选择:V1");
*/
//如果只有一个版本也要和上方保持一致
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//切换版本操作
//参数一是使用的哪个json文件,参数二就是个名字
options.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"版本选择:{version}");
});
});
}
三,最后在我们的控制器上方加上特性
[ApiExplorerSettings(GroupName ="V1")]
[HttpGet]
public IEnumerable<WeatherForecast> Get(Wea weather)
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}