• .Net Core WebApi 6.0 及Swagger文档基本创建


    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()方法修改成

    1. builder.Services.AddControllers()
    2. //定义请求接口返回值传输的时间格式
    3. .AddNewtonsoftJson(options =>
    4. {
    5. options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    6. });

     

     

    8.添加swagger方法文档 (选择项目>属性>生成>输出>勾选文档文件>保存)

     

     

     修改builder.Services.AddSwaggerGen();

     

    给方法和控制器中所引用的类加上注释>运行项目

     

     

     

    9.添加swagger版本和文档
    单个版本

     

    1. //单个版本
    2. options.SwaggerDoc("V1", new OpenApiInfo
    3. {
    4. Title = $"项目名",
    5. Version = "V1",
    6. Description = $"项目名:V1版本"
    7. });

    找 到  app.UseSwaggerUI();方法 更改一下

     

     

     

    1. //配置Swagger文档介绍
    2. app.UseSwaggerUI(options => {
    3. //单个版本
    4. // 如果只有一个版本那么这个版本信息也要和上方配置的保持一致(版本信息:V1)
    5. options.SwaggerEndpoint($"/swagger/V1/swagger.json", $"版本选择V1");
    6. });

    保存运行就可以了

     多个版本

     添加swagger版本类,多个版本用即可调用

    1. /// <summary>
    2. /// 版本枚举类
    3. /// </summary>
    4. public enum ApiVersions
    5. {
    6. /// <summary>
    7. /// 版本1
    8. /// </summary>
    9. V1 = 1,
    10. /// <summary>
    11. /// 版本二
    12. /// </summary>
    13. V2 = 2
    14. }

    修改builder.Services.AddSwaggerGen()方法

     

    1. builder.Services.AddSwaggerGen(options => {
    2. //获取接口方法和控制器中所引用了的类注释
    3. var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    4. //把对应的注释标到swagger对应的方法上
    5. options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
    6. //多个版本(遍历出枚举类中的版本),遍历出来添加到swagger文档介绍之中
    7. typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
    8. {
    9. //添加文档介绍
    10. options.SwaggerDoc(version, new OpenApiInfo
    11. {
    12. Title = $"项目名",
    13. Version = version,
    14. Description = $"项目名:{version}版本"
    15. });
    16. });
    17. });

     修改app.UseSwaggerUI()方法

    1. app.UseSwaggerUI(options => {
    2. //多个版本(遍历出枚举类中的版本)
    3. typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
    4. {
    5. //切换版本操作
    6. //参数一是使用的哪个json文件,参数二就是个名字
    7. options.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"版本选择{version}");
    8. });
    9. });

     定义特性指定方法版本[ApiExplorerSettings(GroupName ="")]

     定义好了运行

    版本一

     版本二

     

     基本就这些了

  • 相关阅读:
    【单片机】独立看门狗IWDG初始化
    数据结构——队列
    CDN许可证申请
    Redis 7.0 源码调试环境搭建与源码导读技巧
    AI「鸟口普查」,康奈尔大学利用深度学习分析北美林莺分布
    用css实现原生form中radio单选框和input的hover已经focus的样式
    代码随想录算法训练营第五十九天| 503.下一个更大元素II,42. 接雨水
    openwrt移植4G CAT1 (L610) ——自动拨号,获取DNS,守护网络实时在线
    【MySQL数据库笔记 - 进阶篇】(四)视图/存储过程/触发器
    Java核心技术卷Ⅰ-第四章对象和类
  • 原文地址:https://blog.csdn.net/weixin_45381269/article/details/126764598