• .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 ="")]

     定义好了运行

    版本一

     版本二

     

     基本就这些了

  • 相关阅读:
    Python 查找并高亮PDF中的指定文本
    高级运维学习(十三)三表五链
    select并发服务器实现
    数据挖掘导论学习笔记1(第1 、2章)
    redis基础6——缓存穿透、缓存击穿、缓存雪崩
    freeswitch
    去做难的工作
    MyBioSource 多巴胺受体 D1 (DRD1),多克隆抗体方案
    快速将iPhone大量照片快速传输到电脑的办法!
    离散数学复习:命题逻辑的推理理论
  • 原文地址:https://blog.csdn.net/weixin_45381269/article/details/126764598