Spring Boot从入门到精通-集成swagger
时间:2022-06-21
本文章向大家介绍Spring Boot从入门到精通-集成swagger,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
现在我们的项目中已经有了一个可供外部调用的rest api接口,随着项目的扩展以后会有越来越多的接口,这个时候就需要同时对外部提供关于接口的详细说明文档,而swagger帮我们使用很少的时间就可以构建出一套接口文档。
- 首先在pom.xml中引用swagger所需的依赖。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
- 然后在代码中开启swagger
@Configuration
@EnableSwagger2
/** 是否打开swagger **/
//@ConditionalOnExpression("'${swagger.enable}' == 'true'") 可以动态控制的开关,在生产环境关闭swagger
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 扫描controller路径
.apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springt boot 从入门到精通 api")
.description("springt boot 从入门到精通 api")
.termsOfServiceUrl("https://www.jianshu.com/u/c9deb1bda6ce")
.contact("https://www.jianshu.com/u/c9deb1bda6ce")
.version("1.0.0")
.build();
}
}
这一步完成之后,启动项目,打开 localhost:8080/swagger-ui.html#/就可以看到swagger的界面了,并且我们写好的那个接口也已经躺在那里等我们的调用。 swagger还有更多的注解帮助我们完善接口文档。
swagger注解
从源码中可以看到swagger提供了这么多注解,下面我们将常用的几个进行讲解:
@Api:注解在controller上,可以有以下参数
// 接口描述
String value() value"";
// 会在swagger页面显示两个标签
String[] tags() default {""};
// 是否隐藏
boolean hidden() default false;
@ApiOperation:注解在接口的方法上
// 接口描述
String value();
// 会在接口上显示笔记
String notes() default "";
String[] tags() default {""};
// 是否隐藏
boolean hidden() default false;
@ApiParam:注解在接口参数上
// 描述
String value() default "";
// 默认值
String defaultValue() default "";
// 是否必填
boolean required() default false;
// 是否隐藏
boolean hidden() default false;
// 示例值
String example() default "";
@ApiModelProperty:注解在model上
// 描述
String value() default "";
// 笔记
String notes() default "";
// 是否隐藏
boolean hidden() default false;
// 示例参数
String example() default "";
//允许空置
boolean allowEmptyValue() default false;
- SpringBoot中发送QQ邮件
- SpringBoot中使用POI,快速实现Excel导入导出
- 代理技术 | 重磅,代理服务器背后的故事(正向、反向代理)
- SpringBoot中自定义参数绑定
- ElementUI中tree控件踩坑记
- 一个隐马尔科夫模型的应用实例:中文分词
- 使用MyBatis轻松实现递归查询与存储过程调用
- Config Server——使用Spring Cloud Bus自动刷新配置
- Config Server——配置内容的加密与解密 详解
- 使用 HTML5 WebSocket 构建实时 Web 应用
- Mysql group by实现方式(一) - 临时表
- TensorFlow 入门
- Python 爬虫 1 快速入门
- Exim Off-by-one(CVE-2018-6789)漏洞复现分析
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- MySQL系列之事务日志Undo log学习笔记
- click 延时解决方案
- Splash抓取javaScript动态渲染页面
- Sentence-Transformer的使用及fine-tune教程
- MySQL系列之事务日志Redo log学习笔记
- jQuery 的基本使用
- uni-app项目改用vue-cli npm运行报错及问题总汇
- 10.3【前端开发】背景图片:如何使用精灵图?
- Angular依赖注入官方文档的学习笔记
- jQuery 选择器
- MySQL系列之二进制日志Binlog学习笔记
- jQuery 效果
- jQuery 属性操作
- jQuery 文本属性值
- 10.4【前端开发】页面布局:如何理解 “CSS 视觉格式化模型”?