SpringBoot【十三(准备篇)】集成在线接口文档Swagger2

 一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

 

二、swagger介绍

       我就不卖关子啦,相信在座的各位很多都已经用过,但是没关系,只要全世界还有一个没用过,我都会给他讲。

       那么,它究竟是何方神圣?登登登~,就是它啦,Swagger!

1、Swagger是什么?

       Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。而且它还是全球最大的OpenAPI规范(OAS)API开发工具框架,且支持从设计和文档到测试和部署的整个API生命周期的开发。

       它的诞生,就是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

2、为什么要用Swagger?

       Swagger的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。

       当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。

3、Swagger有哪些重要特性?

  • 代码侵入式注解
  • 遵循YAML文档格式
  • 非常适合三端(PC、iOS及Android)的API管理,尤其适合前后端完全分离的架构模式。
  • 减少没有必要的文档,符合敏捷开发理念
  • 功能强大。

这不比你手写接口文档香么?(发自灵魂一问) 

那说到这,肯定很多小伙伴就蠢蠢欲动,跃跃欲试,坐立不安了,"这么好使,那不得赶紧教教我们,怎么用啊?"。

bug菌从容回答道:"别急哈,容bug菌充个饥先,去去就回。"

十分钟过去了...

半个小时过去了...

... ...

一个小时过去后... ”好啦,兄弟萌,我来啦。“,那个男人终于回来了,"好啦,咱们接着往下看。"

三、集成Swagger

首先集成Swagger文档,需要做两步,请按如下操作进行:

1、pom引入对应的Swagger依赖包

<!--swagger2-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version><!--排除传递性依赖(默认依赖指定版本的models跟annotations),避免报错--><exclusions><exclusion><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></exclusion><exclusion><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId></exclusion></exclusions>
</dependency><!--Swagger第三方ui-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.2</version>
</dependency><!--提供Swagger API注解-->
<dependency><groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId><version>1.5.21</version>
</dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>1.5.21</version>
</dependency>

   是不是觉得看着有点多,说实话也不多,等你体验了,你就不会觉得这有啥,如上就是Swagger依赖生态啦,基本需要用到的我都配了。由于原生UI界面不是很好看,我就给换了,你们也可以自己选择。

       这是我是集成了xiaoymin开源的ui界面:可就很美观了呀,你们要是好奇,你们可以自己玩一下原生的ui是啥样子,这里就不一一给大家演示了哈

2、config文件配置

依赖都引用全了,接着就是要配置一下,指定几个属性及访问swagger界面url。

package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** swagger配置** @Author luoyong* @Date 2021-06-01 13:00*/
@Configuration //必须存在
@EnableSwagger2 //必须存在
public class SwaggerConfig {@Beanpublic Docket customDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))//对应你controller目录.paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("swagger 接口文档")  //指定文档标题.contact(new Contact("luoyong", "", ""))  //指定作者.description("swagger-bootstrap-ui")  //接口文档描述.termsOfServiceUrl("http://localhost:8080") //指定在线接口文档访问url.version("1.0")  //指定版本号.build();}
}

都配置好后,咱们重启项目,然后浏览器输入url地址:http://localhost:8080/doc.html

你将会发现,这不就是我上方所截图的UI界面嘛。没错,这样就表明已经配置好啦。

至于如何具体结合你的业务接口进行文档在线展示,我将放在下期进行教学,敬请期待吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/489422.html

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

相关文章

数字产业化和产业数字化到底是什么?

“数字产业化”和“产业数字化”在很多官方文件和领导人讲话中都是成对出现的&#xff0c;这两个术语看起来非常相似&#xff0c;但它们作为数字经济的两个重要组成部分&#xff0c;既有联系又有区别。 在谈数字产业化和产业数字化之前&#xff0c;我这里需要先给大家介绍一个概…

Java性能调优 - 多线程性能调优

锁优化 Synchronized 在JDK1.6中引入了分级锁机制来优化Synchronized。当一个线程获取锁时 首先对象锁将成为一个偏向锁&#xff0c;这样做是为了优化同一线程重复获取锁&#xff0c;导致的用户态与内核态的切换问题&#xff1b;其次如果有多个线程竞争锁资源&#xff0c;锁…

一文了解智能制造八大系统【ERP、MES、WMS、SCM、PLM、APS、QMS、TMS】

文章目录 一、前言二、ERP&#xff08;企业资源计划&#xff09;2.1 ERP 定义2.2 发展史2.3 ERP系统主要功能2.4 作用与不足2.4.1 ERP可以帮助企业实现以下目标&#xff1a;2.4.2 局限性&#xff1a; 三、MES&#xff08;制造执行系统&#xff09;3.1 MES 定义3.2 MES系统主要功…

js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写

问&#xff1a; 我按在要在template中v-for循环遍历这个centrerTopdata&#xff0c;我希望自循环前面三个就可以了怎么写&#xff1f; 回答&#xff1a; 问&#xff1a; <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…

Linux 权限及管理

目录 一、Linux权限 1、概念 2、超级用户和普通用户的相关操作 a. 添加用户&#xff0c;删除用户 b. 超级用户和普通用户的切换 c. sduo提权以及白名单设置 二、Linux权限管理 1、文件访问者的分类 2、文件访问类型和权限 a. 文件类型 b. 基本权限 3、文件权限值…

批量合并多个Excel到一个文件

工作中&#xff0c;我们经常需要将多个Excel的数据进行合并&#xff0c;很多插件都可以做这个功能。但是今天我们将介绍一个完全免费的独立软件【非插件】&#xff0c;来更加方便的实现这个功能。 准备Excel 这里我们准备了两张待合并的Excel文件 的卢易表 打开的卢易表软件…

视频安防监控平台:Liveweb视频监控管理云平台方案

LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台&#xff0c;可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华&#xff0c;海康SDK等&#xff09;的视频设备接入&#xff0c;支持GB/T28181上下级联&#xff0c;RTSP\RTMP转GB/T28181&#xff0c;云台…

【kubernetes】k8s集群的简述与搭建

简述 Kubernetes&#xff08;简称 K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序 关键特性 自动化部署和回滚&#xff1a;Kubernetes 可以自动化地部署和回滚应用程序&#xff0c;确保应用程序始终处于预期的状态。服务发现…

模型文件全解析:从基础概念到实际应用

文章目录 一、模型文件&#xff1a;人工智能的核心“蓝图”&#xff08;一&#xff09;模型文件的基本概念&#xff08;二&#xff09;模型文件的重要性及作用&#xff08;三&#xff09;模型文件的组成要素&#xff08;四&#xff09;模型文件的类型及差异&#xff08;五&…

Qt绘制仪表————附带详细说明和代码示例

文章目录 1 效果2 原理3 编码实践3.1 创建仪表属性类3.2 设置类属性3.3 绘制图案3.3.1 设置反走样3.3.2 绘制背景3.3.3 重新定义坐标原点3.3.4 绘制圆环3.3.5 绘制刻度线3.3.6 绘制刻度线上的描述值3.3.7 绘制指针3.3.8 绘制指针数值和单位3.3.9 控制指针变化 扩展福利参考 1 效…

经典文献阅读之--DiffusionDrive(截断扩散模型用于端到端自动驾驶)

0. 简介 最近&#xff0c;扩散模型已经成为机器人策略学习的一种强大的生成技术&#xff0c;能够对多模式动作分布进行建模。利用其端到端自动驾驶的能力是一个有前途的方向。然而&#xff0c;机器人扩散策略中的大量去噪步骤和交通场景的更动态、开放世界的性质对以实时速度生…

使用BMFont创建适用于Unity的艺术字

最近经常使用艺术字&#xff0c;虽然之前的工作经验我知道只需要修什么哪些就可以弄好艺术字的创建和间隔&#xff0c;所以打算做个总结&#xff0c;接下来分为以下几步&#xff08;其中会有补充&#xff0c;最后会有如何解决unity艺术字的字距问题&#xff09; 第1步 下载BMF…

区间和并—acwing

题目一&#xff1a;区间和并 803. 区间合并 - AcWing题库 代码 PII存储区间&#xff0c;排序左端点。first存左端点。 遍历区间&#xff0c;考虑边界情况。每访问一个区间&#xff0c;都更新为最右边的那个端点&#xff08;max) 是否合并区间通过&#xff0c;该区间&#x…

C语言程序设计P6-1【应用指针进行程序设计 | 第一节】——知识要点:指针的概念、定义和运算、指针变量作函数的参数

知识要点&#xff1a;指针的概念、定义和运算、指针变量作函数的参数 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 输入两个整数&#xff0c;按大小顺序输出&#xff0c;要求用函数处理&#xff0c;而且用指针类型的数据作函数参数…

Ubuntu系统下部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由

之前在window下安装过 Ollama和OpenWebUI搭建本地的人工智能web项目(可以看我之前写的文章),无奈电脑硬件配置太低,用qwen32b就很卡,卡出PPT了,于是又找了一台机器安装linux系统,在linux系统下测试一下速度能否可以快一些。 系统硬件介绍 Ubuntu 22.04.4 LTS CPU: i5…

算法知识-16-树

一、树的基本概念 度&#xff08;Degree&#xff09; 一个结点的子树个数&#xff0c;称为这个结点的度。 树中各结点度的最大值&#xff0c;称为这棵树的度。 深度&#xff08;Depth&#xff09; 一棵树中所有的结点层次的最大值称为树的深度。 二、二叉树的概念 定义 …

学习threejs,加载天地图

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Web墨卡托投影 二、&#x…

DCI format2_6会配置在哪些cell上去接收?

根据38.213中的描述&#xff0c;DCI format 2_6可以在PCell和SpCell上检测&#xff0c;而相关cell的定义如上。

C++多线程实战:掌握图像处理高级技巧

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…

深度优先遍历(DFS)

深度优先遍历&#xff08;DFS&#xff09; 1. 计算布尔二叉树的值2. 求根节点到叶节点数字之和3.二叉树剪枝4.验证二叉搜索树5. 二叉搜索树中第 K 小的元素6. 二叉树的所有路径 深度优先遍历&#xff08;DFS&#xff0c;全称为Depth First Traversal&#xff09;&#xff0c;是…