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 ="")]
定义好了运行
版本一

版本二
基本就这些了