Springboot2 Swagger3 集成

在这里插入图片描述

文章目录

          • 一、默认UI
            • 1. 版本尝鲜
            • 2. 导入依赖
            • 3. Swagger3Config配置类
            • 4. Swagger3.0常用注解
            • 4.Controller 层使用Swagger3注解例子
            • 5.访问Swagger3接口文档界面
            • 6.Swagger3接口文档界面展示
          • 二、bootstrapUI
            • 2.1. 导入依赖
            • 2.2. 访问地址

一、默认UI
1. 版本尝鲜

Swagger3在Swagger2的基础上进行了部分升级, 使用和Swagger2没有多少区别。

一个重要的优化是依赖的引入,由之前的多个依赖变更为一个依赖,跟随springboot-starter风格,同时引入了新的开关注解 @EnableOpenApi 以代替@EnableSwagger2 。

因此,集成工作变得更加的简便了,必要工作只有两个,添加swagger3的starter依赖包,在springboot主程序类添加@EnableOpenApi开关注解。

2. 导入依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency></dependencies>
3. Swagger3Config配置类

(必选)添加开关注解@EnableOpenApi

package com.gblfy.common.config;import io.swagger.annotations.ApiOperation;
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.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;/*** @author gblfy*/
//@EnableSwagger2 是 swagger2.0版本的注解
//swagger在3.0之后换成了@EnableOpenApi
@Configuration
@EnableOpenApi
public class SwaggerConfig {@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title("Swagger3接口文档").description("适用于前后端分离统一的接口文档").version("1.0").build();}
}
4. Swagger3.0常用注解

@Api:用在请求的类上,表示对类的说明
  tags=“说明该类的作用,可以在UI界面上看到的注解”
  value=“该参数没什么意义,在UI界面上也看到,所以不需要配置”

@ApiOperation:用在请求的方法上,说明方法的用途、作用
  value=“说明方法的用途、作用”
  notes=“方法的备注说明”

@ApiImplicitParams:用在请求的方法上,表示一组参数说明
  @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
    name:参数名
    value:参数的汉字说明、解释
    required:参数是否必须传
    paramType:参数放在哪个地方
    · header --> 请求参数的获取:@RequestHeader
    · query --> 请求参数的获取:@RequestParam
    · path(用于restful接口)–> 请求参数的获取:@PathVariable
     · div(不常用)
    · form(不常用)
    dataType:参数类型,默认String,其它值dataType=“Integer”
    defaultValue:参数的默认值

@ApiResponses:用在请求的方法上,表示一组响应
  @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
    code:数字,例如400
    message:信息,例如"请求参数没填好"
    response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)

@ApiModelProperty:用在属性上,描述响应类的属性

4.Controller 层使用Swagger3注解例子
package com.gblfy.controller;import com.infoshare.service.IUserService;
import com.infoshare.util.SendMailUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.scheduling.annotation.Async;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;/*** @author: gblfy* @time: 2021/9/17*/
@Api(tags = "用户信息处理")
@RestController
@RequestMapping("/user")
public class UserController {@Resource(name = "userServiceImpl")private IUserService userService;@Resource(name = "sendMailUtil")private SendMailUtil sendMailUtil;private final static int AUTH_CODE_VALID_TIME = 600; //验证码失效时间为 10 min/*** 异步获得验证码的接口* 验证码存储到 Session 里面* @param mail 邮箱* @return authCode_*/@ApiOperation("用户获得注册验证码")@Async@GetMapping("/getAuthCode")public String getAuthCode(@RequestParam(name = "mail") String mail,HttpSession session){String authCode_ = sendMailUtil.sendMailAndGetAuthCode(mail);session.setAttribute("mail",authCode_);session.setMaxInactiveInterval(AUTH_CODE_VALID_TIME); //设置验证码失效时间为10minreturn authCode_;}}
5.访问Swagger3接口文档界面

Swagger的访问路径由port/swagger-ui.html改成了 port/swagger-ui/ 或port/swagger-ui/index.html
两种访问方式任选其一

http://localhost:8080/swagger-ui/
http://localhost:8080/swagger-ui/index.html

6.Swagger3接口文档界面展示

在这里插入图片描述

在这里插入图片描述

二、bootstrapUI
2.1. 导入依赖
  <dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency>
2.2. 访问地址

http://localhost:8080/doc.html
在这里插入图片描述

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

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

相关文章

10个月,15亿,阿里云如何赋能企业打造交付和创新竞争力?

阿里妹导读&#xff1a;中国有3000万卡车司机&#xff0c;他们每天开车12-16个小时&#xff0c;发生事故导致身亡的概率是普通人群的5倍。路歌旗下的“卡友地带”是中国最大的卡车司机交友互助平台&#xff0c;有超过150万的卡车司机在上面活跃。 “卡友地带”却在运行两年后&a…

涌之势,智造未来, 戴尔科技集团携新一代信息技术解决方案赋能“新基建”

2020年7月10日&#xff0c;戴尔科技集团邀请中国科学院专家、行业领袖、客户与合作伙伴、媒体和分析师朋友共同探讨“新基建”为行业所带来的机遇与智造未来的发展前景。 戴尔科技集团推出多款面向新一代信息技术的Power 家族创新产品组合与解决方案&#xff0c;多维度展示了戴…

重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%

12月13日&#xff0c;全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA&#xff0c;单实例的可用性从99.95%提升至99.975%&#xff0c;多可用区多实例可用性从99.99%提升至99.995%&#xff0c;均为全球最高水准。 SLA即服务等级协议&#xff0c;代表了云服务商…

诚选app优化方案

解决大文件问题&#xff0c;目前发现整个项目打包的出来的文件过大 1.如图一、图二可以看到在Stat Parsed Gzip下文件的大小相差很大&#xff0c;目前从图三中可以看到两个属性productionSourceMap、ProductionGzip&#xff0c;productionSourceMap为true的时候会生成一些map文…

基于深度学习的图像分割在高德的实践

一、前言 图像分割&#xff08;Image Segmentation&#xff09;是计算机视觉领域中的一项重要基础技术&#xff0c;是图像理解中的重要一环。图像分割是将数字图像细分为多个图像子区域的过程&#xff0c;通过简化或改变图像的表示形式&#xff0c;让图像能够更加容易被理解。…

腾讯汤道生:AI是产业互联网的“中央处理器”,数字技术融合打造产业新动能

7月10日&#xff0c;2020世界人工智能大会腾讯论坛正式拉开帷幕。腾讯高级执行副总裁、云与智慧产业事业群总裁汤道生进行了开场致辞。汤道生表示&#xff0c;人工智能是新基建的核心技术之一&#xff0c;也是产业互联网的“中央处理器”。在AI的产业和技术发展趋势方面&#x…

小程序开发(1)-之目录结构和文件说明

#以下图片是小程序的目录结构&#xff0c;建议所有的目录都使用小写字母&#xff0c;不使用驼峰格式 #组件 components是自定义组件目录&#xff0c;对一些常用的组件的封装 #配置文件 config是配置文件&#xff0c;存有一些常用的字段和请求地址 #第三方库 libs是一些外部…

阿里云杨敬宇:四层技术构建基于城市场景的边缘计算

12月11日&#xff0c;阿里云边缘计算技术负责人杨敬宇在2019亚太内容分发大会上表示&#xff1a;在未来&#xff0c;边缘计算主要是以地市、区县为单位开展&#xff0c;面向城市服务的交通、医疗、健康、教育、新零售等场景提供算力基础。阿里云认为边缘计算就是城市计算&#…

2020年的双11,阿里需要什么样的渲染方案?

阿里妹导读&#xff1a;前端技术的"新陈代谢"是有目共睹的&#xff0c;新技术的不断发展也推动着前端应用场景的不断扩大&#xff0c;从 Web 、Weex 到 Node.js 再到 FaaS。我们在发展中看不变的部分&#xff0c;唯有追求更好的用户体验是端技术持续发展中不变的责任…

腾讯优图发布四大平台产品,持续开放视觉AI能力

7月10日&#xff0c;2020世界人工智能大会在上海举行&#xff0c;腾讯优图实验室总经理吴运声发表了“新基建新生态下的计算机视觉”的主题演讲&#xff0c;分享了优图视觉AI技术在工业、教育、泛娱乐等领域的最新落地实践&#xff0c;并发布四大平台产品&#xff0c;进一步开放…

小程序开发(2)-之app.js、app.wxss、project.config.json说明

#app.js 小程序的入口文件&#xff0c;也可以说是一个全局的变量&#xff0c;因为我们经常会在一些页面里这样使用它const app getApp(); 我们可以在这里做一些初始化的操作&#xff0c;每次启动小程序的时候&#xff0c;都会先执行一边这里&#xff0c;可以对一些常用的全局…

微服务治理实践:如何对单点异常进行自动摘除

微服务架构下&#xff0c;稳定性和高可用性一个永恒的话题&#xff0c;在实际的治理过程中&#xff0c;我们有可能会遇到以下场景&#xff1a; 某个应用灰度发布&#xff0c;先上了几台机器&#xff0c;由于代码逻辑写的有问题&#xff0c;造成线程池满&#xff0c;出现运行异…

数字时代企业信息安全如何保障? VMware原生安全前来“保驾护航”

2020年春天&#xff0c;以5G、人工智能、云计算为代表的“新基建”蔚然成风&#xff0c;着眼国家数字经济体系建设&#xff0c;打造数字经济体系底座的“新基建”&#xff0c;无疑成为中国经济整体应对未来发展的核心方案。可以说&#xff0c;没有任何一个时期比现在更能够彰显…

Elasticsearch7.15.2 安装、部署(linux环境)

文章目录一、软件下载配置1. 下载2. 解压3. 录结构理解二、采用自带的jdk2.1. 启动脚本2.2. 添加jdk判断三、配置与启动3.1. 核心配置简述3.2. 核心配置3.3. 创建数据存储目录3.4. 创建es用户3.5. 修改目录权限3.6. JVM配置3.7. 增加资源分配3.8. 内核参数3.9. 刷新 配置3.10. …

仅1年GitHub Star数翻倍,Flink 做了什么?

阿里妹导读&#xff1a;Apache Flink 是公认的新一代开源大数据计算引擎&#xff0c;其流水线运行系统既可以执行批处理程序也可以执行流处理程序。目前&#xff0c;Flink 已成为 Apache 基金会和 GitHub 社区最为活跃的项目之一。在 Flink Forward Asia 2019 上&#xff0c;阿…

小程序开发(3)-之wx.request封装

#主要的封装是wxRequest、wxRequestGet、wxRequestPost、wxRequestPromise、headers这几个函数&#xff0c;由于太过赘余不进行截图展示&#xff0c;可以看utils.js #wxRequest方法 wxRequest其实跟原始的wx.request没有太大的不同&#xff0c;相当于一个中间键&#xff0c;可…

elasticsearch-head 谷歌插件以及安装和使用说明

文章目录一、谷歌插件方式1. 下载2. 扩展程序3. 打开开发者模式4. 拖动插件5. 添加扩展程序6. 点击es插件7. 连接8.效果对比二、源码运行方式(推荐使用)2.1. 克隆源码2.2. 配置2.3. 下载依赖2.4. 启动2.5. 验证一、谷歌插件方式 1. 下载 https://github.com/mobz/elasticsear…

闲鱼如何高效承接并处理用户纠纷

背景 闲鱼是一个基于C2C场景的闲置交易平台&#xff0c;每个用户既是买家也是卖家&#xff0c;在自由享受交易乐趣的同时也容易带来一些问题&#xff0c;如发一些侵权违规商品而不自知&#xff0c;发一些带情绪化言语对他人照成了伤害等,因此这也带来了一个核心问题&#xff1…

国内厂商 Onyx 违反 GPL 协议,中国开源何去何从?

作者 | 马超责编 | 王晓曼封图 | CSDN 付费下载自东方 IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近日&#xff0c;中国电子书厂商Oynx拒绝开源其基于Linux 内核修改的设备源码&#xff0c;这一做法违反了Linux的GPL协议&#xff0c;在Reddit社区引发了开源…

系统重构的道与术

最近参与了很多重构项目&#xff0c;有以提高服务器资源利用率为目标的Gateway网关、AMAPS等服务的重构&#xff0c;也有以提升架构合理性和研发效率为目标的共享业务服务化拆分&#xff0c;借此机会把相关内容梳理一下&#xff0c;是分享更是自我总结和学习。准备以重构工作中…