1.打开VS2022创建Net Core Web Api然后定义好名称和选择框架6.0其它勾选的都默认
2.创建好项目
3.运行项目
4.swagger测试接口方法
5.添加两个带参数测试方法
特性定义数据传输格式和请求的该方法名
[HttpGet("GetWeather/{text}")]:为路径传输
[HttpGet("GetWeather")]:为参数传输
6.测试带参方法
7.解决时间格式偏差问题>选择项目>NuGet管理包>浏览Micorsoft.AspNetCore.Mvc.NewtonsoftJson>安装
安装好进入program.cs类找到builder.Services.AddControllers()方法修改成
builder.Services.AddControllers()
//定义请求接口返回值传输的时间格式
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});
8.添加swagger方法文档 (选择项目>属性>生成>输出>勾选文档文件>保存)
修改builder.Services.AddSwaggerGen();
给方法和控制器中所引用的类加上注释>运行项目
9.添加swagger版本和文档
单个版本
//单个版本
options.SwaggerDoc("V1", new OpenApiInfo
{
Title = $"项目名",
Version = "V1",
Description = $"项目名:V1版本"
});
找 到 app.UseSwaggerUI();方法 更改一下
//配置Swagger文档介绍
app.UseSwaggerUI(options => {
//单个版本
// 如果只有一个版本那么这个版本信息也要和上方配置的保持一致(版本信息:V1)
options.SwaggerEndpoint($"/swagger/V1/swagger.json", $"版本选择V1");
});
保存运行就可以了
多个版本
添加swagger版本类,多个版本用即可调用
/// <summary>
/// 版本枚举类
/// </summary>
public enum ApiVersions
{
/// <summary>
/// 版本1
/// </summary>
V1 = 1,
/// <summary>
/// 版本二
/// </summary>
V2 = 2
}
修改builder.Services.AddSwaggerGen()方法
builder.Services.AddSwaggerGen(options => {
//获取接口方法和控制器中所引用了的类注释
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
//把对应的注释标到swagger对应的方法上
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
//多个版本(遍历出枚举类中的版本),遍历出来添加到swagger文档介绍之中
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//添加文档介绍
options.SwaggerDoc(version, new OpenApiInfo
{
Title = $"项目名",
Version = version,
Description = $"项目名:{version}版本"
});
});
});
修改app.UseSwaggerUI()方法
app.UseSwaggerUI(options => {
//多个版本(遍历出枚举类中的版本)
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//切换版本操作
//参数一是使用的哪个json文件,参数二就是个名字
options.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"版本选择{version}");
});
});
定义特性指定方法版本[ApiExplorerSettings(GroupName ="")]
定义好了运行
版本一
版本二
基本就这些了