当前位置: 首页 > news >正文

.NET中的Swagger使用

目录

前言

一、Swagger是什么?

二、如何Swagger文档说明的信息

1.在AddSwaggerGen方法中写入文档信息

2.运行效果

二、文档UI界面标题、路由设置

1.在中间件UseSwaggerUI方法中配置

三、文档UI界面添加接口注释

1.在 .csproj中配置

2.在AddSwaggerGen方法中配置IncludeXmlComments

四、对接口进行分组

1.在AddSwaggerGen、UseSwaggerUI分别添加如下信息

2.在controller或者action上打上ApiExplorerSettings特性

总结



前言

现在很多项目都是前后端分离的项目,后端写好接口跟前端对接,需要后端提供接口文档、参数等注释,这上面花时间着这些东西,接口修改又要去修改文档,很不方便前后端人员开发


一、Swagger是什么?

Swagger (OpenAPI) 是一个与语言无关的规范,用于描述 REST API。

OpenAPI 与 Swagger关系
Swagger 项目已于 2015 年捐赠给 OpenAPI 计划,自此它被称为 OpenAPI,这两个名称可互换使用。 不过,“OpenAPI”指的是规范。
简而言之:
OpenAPI 是一种规范。
Swagger 是一种使用 OpenAPI 规范的工具。 例如,OpenAPIGenerator 和 SwaggerUI。

目前从NETCore从3.1起已经集成Sawwger,无需再去引用库,创建项目后运行API项目自动Sawwger接口文档的页面 

介绍大家可能会关注的一些点

二、如何Swagger文档说明的信息

1.在AddSwaggerGen方法中写入文档信息

代码如下(示例):

builder.Services.AddSwaggerGen(options =>
{//诸如作者、文档说明的信息options.SwaggerDoc("v1", new OpenApiInfo{Version = "v1",Title = "我的API",Description = "这是我的netcoreAPI项目",//描述信息Contact = new OpenApiContact{Name = "我是小小鱼",Url = new Uri("https://blog.csdn.net/qq_42335551")}});

2.运行效果

如图(示例):

二、文档UI界面标题、路由设置

如何修改标签页的名、和地址要怎么修改呢

1.在中间件UseSwaggerUI方法中配置

 app.UseSwagger();app.UseSwaggerUI(c => { c.DocumentTitle = "后台接口列表";   //标签页标题c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模块");//接口文档json文件c.RoutePrefix =string.Empty;// 注:这里的路由修改后,launchSettings.json中的launchUrl对应需要调整为""});

 在次启动项目 已经变成修改后的标签页和地址


三、文档UI界面添加接口注释

如何添加接口的注释呢

1.在 .csproj中配置

    在解决方案资源管理器中右键单击该项目。
    将 GenerateDocumentationFile 添加到 .csproj 文件中PropertyGroup节点下

<GenerateDocumentationFile>true</GenerateDocumentationFile>

2.在AddSwaggerGen方法中配置IncludeXmlComments

代码如下(示例):

builder.Services.AddSwaggerGen(options =>
{//诸如作者、文档说明的信息options.SwaggerDoc("v1", new OpenApiInfo{Version = "v1",Title = "我的API",Description = "这是我的netcoreAPI项目",//描述信息Contact = new OpenApiContact{Name = "我是小小鱼",Url = new Uri("https://blog.csdn.net/qq_42335551")}});var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);//true 显示控制器注释
});

 运行效果,已经显示出我们的注释

 可以在控制器、参数、实体类增加注释后,再次运行都有显示

四、对接口进行分组

1.在AddSwaggerGen、UseSwaggerUI分别添加如下信息

例如

    options.SwaggerDoc("yw", new OpenApiInfo { Title = "业务模块", Version = "yw" });options.SwaggerDoc("qt", new OpenApiInfo { Title = "其他模块", Version = "qt" });

例如

 c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模块");//接口文档json文件c.SwaggerEndpoint("/swagger/yw/swagger.json", "业务模块");c.SwaggerEndpoint("/swagger/qt/swagger.json", "其他模块");c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);//接口不展开None

 2.在controller或者action上打上ApiExplorerSettings特性

例如[ApiExplorerSettings(GroupName = "v1")]

总结

有Sawwger有利于前后端开发人员接口的对接,调试,功能上挺丰富的,简单的写了以上几点

http://www.lryc.cn/news/266408.html

相关文章:

  • 结构屈曲分析
  • Flink 客户端操作命令及可视化工具
  • csrf自动化检测调研
  • 记录一个Python鼠标自动模块用法和selenium加载网页插件的设置
  • 【数据库系统概论】第3章-关系数据库标准语言SQL(1)
  • 【Python】基于flaskMVT架构与session实现博客前台登录登出功能
  • 为什么有的开关电源需要加自举电容?
  • 【MCAL】TC397+EB-treso之MCU配置实战 - 芯片时钟
  • 高级人工智能之群体智能:蚁群算法
  • 【SpringBoot应用篇】【AOP+注解】SpringBoot+SpEL表达式基于注解实现权限控制
  • Java研学-HTTP 协议
  • 差生文具多之(二): perf
  • 【SPI和API有什么区别】
  • Day67力扣打卡
  • 什么是网站监控?
  • 游戏软件提示d3dcompiler_43.dll的五个解决方法,亲测靠谱
  • python使用opencv提取视频中的每一帧、最后一帧,并存储成图片
  • 说说对React refs 的理解?应用场景?
  • Pytorch 读取t7文件
  • 【YOLOV8预测篇】使用Ultralytics YOLO进行检测、分割、姿态估计和分类实践
  • [Linux] MySQL数据库之索引
  • 【期末考试】计算机网络、网络及其计算 考试重点
  • 力扣labuladong——一刷day79
  • 【数据结构入门精讲 | 第十篇】考研408排序算法专项练习(二)
  • 【ES实战】Elasticsearch6开始的CCR
  • Deployment Pay
  • MySQL创建member表失败
  • 使用minio实现大文件断点续传
  • 插入排序之C++实现
  • Tomcat日志乱码了怎么处理?