SpringBoot-25-SpringBoot整合Swagger2以和Swagger-Bootstrap-Ui的使用
SpringBoot-25-SpringBoot整合Swagger2以及Swagger-Bootstrap-Ui的使用
等等方式吧。但是当我们要和前端开发进行交互的时候我们不仅仅需要自己测试通过,同时还需要给前端工程师这个API接口的开发文档,以及每次测试修改接口后,要对文档进行维护,这就增加了我们
程序开发的成本,并且经常文档维护维护就中断了,那么它就失去了参考价值,变得没有意义。Swagger的出现就是为了解决这些痛点的。个人认为Swagger有以下优点:
-
Swagger提供了API接口文档,并且将代码维护和文档修改融为一体,减少创建文档的麻烦
-
Swagger提供了前端界面用来测试每一个API接口
-
跨语言,支持多国语言
那么现在我们开始进行Swagger的代码之旅吧。
引入Swagger的依赖
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger2</artifactId>
-
<version>2.9.2</version>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger-ui</artifactId>
-
<version>2.9.2</version>
-
</dependency>
创建Swagger配置类
创建一个swagger的config配置代码如下:
-
-
-
public class Swagger2Config {
-
-
-
public Docket api() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.enable(true)
-
.apiInfo(apiInfo())
-
.select()
-
// 扫描需要生成API文档的controller所在的包路径
-
.apis(RequestHandlerSelectors.basePackage("com.learn.springboot.controller"))
-
//为有@Api注解的Controller生成API文档
-
// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
-
//为有@ApiOperation注解的方法生成API文档
-
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
-
.paths(PathSelectors.any())
-
.build();
-
}
-
-
private ApiInfo apiInfo() {
-
return new ApiInfoBuilder()
-
.title("Spring Boot 2.x集成Swagger")
-
.description("测试 API 1.0 操作文档")
-
.termsOfServiceUrl("test")
-
.version("1.0")
-
.contact(new Contact("springboot葵花宝典", "", "test@gmail.com"))
-
.build();
-
}
-
}
注
-
@Configuration:声明Swagger2Config为配置类
-
@EnableSwagger2:声明配置Swagger配置
配置Swagger的测试API
经过上面的操作后,Swagger页面以及可以看到基本信息了,但是我们还没有添加相关的API信息,现在我们就添加相关的API操作,代码如下:
Student实体类
-
-
-
-
public class Student implements Serializable{
-
-
-
-
private Long id;
-
-
private String mobile;
-
-
-
private String sex;
-
-
private String name;
-
-
private int age;
-
-
-
private String email;
-
-
private int isEnabled;
-
-
private Date createDate;
-
private Date updateDate;
-
-
}
注解:
-
ApiModel:作用在实体类上,表示响应数据
-
@ApiModelProperty:实体类属性的描述
添加Controller
-
-
-
-
public class TestController {
-
/**
-
*测试
-
*/
-
-
-
-
-
-
-
public String test( { String name)
-
return "Hello :" name;
-
}
-
-
/**
-
*测试student
-
*/
-
-
-
public Student testStudent( { Student student)
-
return student;
-
}
-
}
-
注解:
-
@Api:作用在Controller类上,value的值默认不显示,tag属性为具体描述
-
@ApiOperation:作用在Controller类的方法上
- @ApiImplicitParams:方法中参数的说明
-
value:参数的说明
-
paramType:参数输出的位置,header(请求参数的获取:@RequestHeader)、query(请求参数的获取:@RequestParam)、path(请求参数的获取:@PathVariable)
-
dataType:参数类型
-
example:参数示例
-
required:参数是否必须
-
测试
启动项目,然后输入:
http://localhost:8080/swagger-ui.html进行测试。其整体展示效果如下:
使用Swagger进行测试
我们对测试方法接口将那些测试,点击Try it out
进入参数页面
输入name,点击execute,就完成了接口的请求了。
整合swagger-bootstrap-ui
swagger默认的api接口是上下结构,在浏览器中显示不符合我们开发系统的左右菜单风格,swagger-bootstrap-ui
就是一套基于左右菜单风格,只需要在pom.xml中添加依赖即可。
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger2</artifactId>
-
<version>2.9.2</version>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger-ui</artifactId>
-
<version>2.9.2</version>
-
<exclusions>
-
<exclusion>
-
<groupId>io.swagger</groupId>
-
<artifactId>swagger-annotations</artifactId>
-
</exclusion>
-
<exclusion>
-
<groupId>io.swagger</groupId>
-
<artifactId>swagger-models</artifactId>
-
</exclusion>
-
</exclusions>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
-
<dependency>
-
<groupId>com.github.xiaoymin</groupId>
-
<artifactId>swagger-bootstrap-ui</artifactId>
-
<version>1.9.6</version>
-
</dependency>
-
<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 API文档
访问swagger-bootstrap-ui文档
-
swagger文档地址:http://localhost:8080/doc.html
-
swagger效果展示
实体类展示
方法展示
如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfjkag
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01