SpringBoot整合Swagger2教程
SpringBoot整合Swagger2教程
- 环境说明
springboot 版本 2.4.4
swagger2 版本 2.9.2
- 工程准备
创建Springboot工程。这一步不会的可先去HelloWorld,传送门
导入swagger2相关maven依赖
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
配置Swagger2
我一进门就看见常威在打来福,万物皆对象,万物皆可config没得说,先来一个Swagger2Config并创建Docket实例丢给Spring容器
@EnableSwagger2
@Configuration
public class Swagger2Config {@Beanpublic Docket docket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(this.apiInfo()).groupName("山河项目组").enable(true) // 是否开启swagger-ui.select()// basePackage 扫描哪些包// withClassAnnotation 基于类的注解扫描// withMethodAnnotation 基于方法的注解扫描// any 全扫描;none 全部扫描.apis(RequestHandlerSelectors.basePackage("tech.yfan.myboot.ctrl"))//.apis(RequestHandlerSelectors.withClassAnnotation(ScanSwagger.class))//.paths(PathSelectors.ant("/hello/**")).build();}@Beanpublic ApiInfo apiInfo(){return new ApiInfo("XXX-Admin接口文档","山河-项目组AA模块接口说明","1.0","http://www.baidu.com",new Contact("wangxy", "http://www.baidu.com", "135****465@qq.com"),"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());}
}
ApiInfo属性含义参见源码ApiInfo.class
我是到ApiInfo.class源码抄的静态代码块自己更改的内容,大致就是项目组描述、联系人、联系人邮箱什么的大家改一改网页访问对比以下就知道了
- 成品图如下
- 接口示例
@Controller
@RequestMapping("/hello")
@ScanSwagger
@ApiModel("Hello类注释")
public class HelloCtrl {/*** 此接口访问成功则框架跑的通* @return*/@ResponseBody@RequestMapping("/hello")@ApiOperation("你好方法")public String hello(@ApiParam("用户名") String username){return "hello";}
}
- 再次成品
这里我给方法(接口)和入参加了注释,便于别人理解(头晕)
下面介绍以下介个注解的用处 - 注解简述
@Api注解可以用来标记当前Controller的功能。
@ApiOperation注解用来标记一个方法的作用。
@ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
如果有多个参数,则需要使用多个@ApiImplicitParam注解来描述,多个@ApiImplicitParam注解需要放在一个@ApiImplicitParams注解中。
需要注意的是,@ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required = true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。
不说了上面这几个注解是我抄一个名叫【江南一点雨】,实在不想码字了 - 不成蛋的彩蛋
Docket和ApiInfo都是源码点进去复制的静态代码块或构造方法,也不想码字 - 反人类我
用了这个丝袜哥我并没感觉到有多爽,相反我觉得有点蛋疼,可能我还不太习惯在代码里写接口注释的方式。
这算不算把接口代码和接口文档耦合到一起呢,写完逻辑又在代码里补补注释实在不想这么干,我还是喜欢另起炉灶另找一块地方专门写接口文档。
希望各位老哥解答我的疑惑,衷心的把我吊起来打
SpringBoot整合Swagger2教程相关推荐
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- 业务规范之springboot整合swagger2
业务规范(整合swagger2) ###业务规范之springboot整合swagger2 ###业务规范之统一验证 ###业务规范之统一返回体 ###业务规范之统一异常处理和统一响应 二.整合swa ...
- springboot整合 swagger2
springboot整合 swagger2 引入依赖 <!-- swagger --><dependency><groupId>io.springfox</g ...
- 很详细的SpringBoot整合UEditor教程
很详细的SpringBoot整合UEditor教程 2017年04月10日 20:27:21 小宝2333 阅读数:21529 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...
- Swagger的安装以及SpringBoot整合Swagger2实现SwaggerAPI文档测试
前言 本篇博客是本人在网上学习Swagger所产出的个人笔记.主要内容有: 1.Swagger的安装 2.Swagger的介绍 3.Swagger2中常用的注解 4.快速上手案例 准备工作:Swagg ...
- SpringBoot整合Swagger2
整合Swagger2 1.Swagger介绍 前后端分离开发模式中,api文档是最好的沟通方式. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web ...
- springboot 整合 swagger2 配置账号密码登录 demo代码
配置spring security登录可参考: springboot整合spring security安全框架-简单验证账号密码 一.pom文件引入swagger依赖 <!-- swagger2 ...
- 项目实战|史上最简单的springboot 整合elk教程,实现日志收集(带视频哦)
配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...
- SpringBoot整合Swagger2实现接口文档
展示一下 访问方式一 访问地址:http://localhost:8080/swagger-ui.html#/ 首页 详情页 访问方式二 访问地址:http://localhost:8080/doc. ...
最新文章
- python模拟按键_python 模拟按键放在模拟器Python初学者的17个技巧
- mysql 数据库引擎切花_asyncio异步编程【含视频教程】
- redis性能测试报告
- apache2启动和停止操作
- wxWidgets:wxStreamToTextRedirector类用法
- C++多线程实例(_beginThreadex创建多线程)
- windows下cmd中清屏
- 凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...
- 【CTF WEB】反序列化
- Openresty+Nginx+Lua+Nginx_http_upstream_check_module 搭建
- 谁在杀死Facebook?谁该为我们负责?
- 【note】《软件体系结构》知识整理(1-5章)
- OSChina 周日乱弹 ——可以囤硬盘了
- jquery中的css函数css(name)、css(key,value)、css(properties)、css(key,fn)
- CSS:设置文字不可选
- 注册icloud邮箱
- ssm+vue企业员工考勤请假网上办公OA自动化系统java
- 022-互惠合作|离职员工的关系网
- 好书推荐——从零开始学习 Julia 编程、数学和数据科学。
- 如何取消服务器自动关机,服务器自动关机求助
热门文章
- 淘宝卖家掌握最新操作方法,让你的直通车飞起来!
- (ch9) Deep Learning for Anomaly Detection: A Survey
- Matlab实现鼠标拖动显示轮廓线
- 三国杀online网页版服务器更新,2019年《三国杀Online》更迭汇总,一切为了“fun”...
- 博客介绍——warrent(博文末尾有彩蛋)
- 音乐探索3:关于放克
- DBMS_LOB.SUBSTR(col1,n,pos) : 获取文本
- DL之Transformer:Transformer的简介(优缺点/架构详解,基于Transformer的系列架构对比分析)、使用方法(NLP领域/CV领域)、案例应用之详细攻略
- C语言实现简单的四则运算计算器
- [博弈] LOJ#2471. 「九省联考 2018」一双木棋