.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.mzph.cn/news/241525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Spark简介与历史发展

在当今信息爆炸的时代&#xff0c;大数据处理已成为了现实。企业和组织需要处理海量数据来获得有用的信息和见解。Apache Spark作为一个开源的大数据处理框架&#xff0c;已经在大数据领域占据了重要地位。 Apache Spark简介 Apache Spark是一个用于大规模数据处理的快速、通…

【zookeeper特点】

文章目录 1. Zookeeper介绍2、ZooKeeper数据结构 1. Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性 …

java8 reduce操作

什么是 reduce 操作 reduce 操作是一种通用的归约操作&#xff0c;它可以从一个元素序列中生成一个单一的结果&#xff0c;通过反复将一个组合操作应用到序列中的元素上。例如&#xff0c;我们可以使用 reduce 操作来计算一个整数序列的和&#xff0c;或者将一个字符串序列拼接…

EventSource和WebSocket

eventSource&#xff08;事件源&#xff09;和WebSocket都是用于实现服务器与客户端之间的实时通信的技术&#xff0c;但它们在一些方面有所不同。 eventSource eventSource是HTML5中的一种技术&#xff0c;它允许服务器向客户端发送单向的、持久的、自动的消息。它基于HTTP协…

新版IDEA中Git的使用(一)

说明&#xff1a;本文介绍如何在新版IDEA中使用Git 创建项目 首先&#xff0c;在GitLab里面创建一个项目&#xff08;git_demo&#xff09;&#xff0c;克隆到桌面上。 然后在IDEA中创建一个项目&#xff0c;项目路径放在这个Git文件夹里面。 Git界面 当前分支&Commit …

GO语言基础笔记(五):包的介绍

在Go语言中&#xff0c;包&#xff08;package&#xff09;是代码组织和重用的基本单位。Go的标准库中包含了许多实用的包&#xff0c;它们提供了从基础数据处理到复杂网络编程等各种功能。下面是一些常用的Go标准库包及其作用的介绍&#xff1a; 目录 1. fmt 2. net/http …

Qt/QML编程学习之心得:在QML中调用fileDialog(十六)

Qt中有一些内置的对话框dialog,比如 在QWidget工程中使用比较容易,比如 #include <QFileDialog>fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); 那么在QM…

使用eclipse创建一个java文件并运行

启动 Eclipse 并创建一个新的 Java 项目: 打开 Eclipse。 选择 “File” > “New” > “Java Project”&#xff08;文件 > 新建 > Java 项目&#xff09;。 在弹出的窗口中&#xff0c;为你的项目命名&#xff0c;比如 MyJavaProject。 点击 “Finish”&#xff…

word2003 open word2007+

Win 7 C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates 还是不行&#xff0c;重装office2003吧&#xff0c;再安装转换插件&#xff0c;但是再高版本好像没转换工具

由正规表达式构造DFA,以及DFA的相关化简

目录 1.由正规式到DFA 首先讲如何从正规式到NFA 如何从NFA到DFA 2.DFA的化简 3.DFA和NFA的区别 1.由正规式到DFA 正规式--->NFA---->DFA 首先讲如何从正规式到NFA 转换规则: 例题1&#xff1a;这里圆圈里面的命名是随意的&#xff0c;只要能区别开就可以了 如何…

R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()

文章目录 介绍Reduce()实例 Filter()实例 Find()实例 Map()实例 Negate()实例 Position()实例 介绍 R语言中的Reduce(), Filter(), Find(), Map(), Negate(), Position()是base包中的一些高级函数。随后&#xff0c;很多包也给这些函数提供了更多的扩展。 Reduce() 该函数根…

Leetcode 第 120 场双周赛 Problem C 统计移除递增子数组的数目 II(Java + 双指针 + 前缀和)

题目 统计移除递增子数组的数目 II给你一个下标从 0 开始的 正 整数数组 nums 。如果 nums 的一个子数组满足&#xff1a;移除这个子数组后剩余元素 严格递增 &#xff0c;那么我们称这个子数组为 移除递增 子数组。比方说&#xff0c;[5, 3, 4, 6, 7] 中的 [3, 4] 是一个移除…

助力打造清洁环境,基于YOLOv4开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

【UML】第12篇 序列图(1/2)——基本概念和构成

目录 一、什么是序列图&#xff08;Sequence Diagram&#xff09; 1.1 定义 1.2 主要用途 1.3 序列图和BPMN的区别和联系 二、序列图的构成 2.1 对象 2.2 生命线 2.3 消息 2.4 激活 序列图&#xff0c;是我个人认为的用处最多的一种图。产品和研发的同学&#xff0c;都…

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?

向量投影&#xff1a;如何将一个向量投影到矩阵的行向量生成子空间&#xff1f; 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题&#xff0c;主要是对于正交投影矩阵(NT(NNT)-1N)的不理解&#xff0c;因此经过查阅资料&#xff0c;学习了关于向量投影的知识&…

【Datawhale x 财务学习笔记】用智谱清言的代码沙盒进行分析

体验网址 智谱清言&#xff1a;https://chatglm.cn/ prompt 帮我分析一下这个excel文件&#xff0c;从财务角度给出利润情况&#xff0c;并给出优化建议体验结果 首先&#xff0c;我将查看上传的Excel文件的内容&#xff0c;以便了解其结构和包含的数据。然后&#xff0c;我…

MySQL8主主搭建

-- mysql8 主主搭建 mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 主1 &#xff1a; 192.168.2.160 主2 &#xff1a; 192.168.2.161 --解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8 -- 初始化mysql8 &#xff08;略&#xff09; -- 参数192.168.2.160 [root…

相机内参标定理论篇------张正友标定法

一、为什么做相机标定&#xff1f; 标定是为了得到相机坐标系下的点和图像像素点的映射关系&#xff0c;为摄影几何、计算机视觉等应用做准备。 二、为什么需要张正友标定法&#xff1f; 张正友标定法使手工标定相机成为可能&#xff0c;使相机标定不再需要精密的设备帮助。…

7种常见的网络安全设备及其功能

网络安全设备在现代网络环境中起着至关重要的作用&#xff0c;帮助保护个人和组织免受恶意攻击。本文将介绍7种常见的网络安全设备&#xff0c;包括防火墙、入侵检测系统、反病毒软件、数据加密设备、虚拟私人网络、安全信息和事件管理系统以及网络访问控制设备&#xff0c;并详…

junit-mock-dubbo

dubbo单元测试分两种情况 Autowired注解是启动上下文环境&#xff0c;使用上下文对象进行测试&#xff0c;适合调试代码 InjectMocks注解是启动上下文环境&#xff0c;使用mock对象替换上下文对象&#xff0c;适合单元测试 BaseTest *** Created by Luohh on 2023/2/10*/ S…