传统的做法,我们应该会为每个系统准备一份接口文档,方便各个团队之间的交流。但是在微服务快速发展的今天,各个系统之间的交流基本都依赖于接口调用,这样就导致接口变得越来越多,开发人员在开发的同时还要维护文档,任务量加重,哀声一片,也可能会出现开发人员未及时维护文档,使得文档与接口信息不一致。
传统做法,在如今是一个不太友好的方式,为了解决上述问题,Swagger出现了。Swagger是一款可以通过注解的方式生成Restful APIs交互式界面的工具,它不仅减少了我们文档的编写,而且同时能够实现接口测试,接口修改的同时也能够维护文档,可以很好的避免信息不一致。虽然Swagger具有如此多的优点,但是它的缺点也不容忽视,代码侵入严重,在原有代码的基础上,我们需要写更多的注解。不过,为了更快的维护文档和调试接口,方便团队之间交流,swagger还是不错的选择。
项目搭建
现在我们就来学习一下java界目前最火热的springboot2怎样与swagger2整合,还是采用示例讲解的方式。
pom.xml中添加swagger2依赖:
<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时,我们需要配置swagger2相关信息,如下所示:
Swagger2Config:
@Configuration
@EnableSwagger2
public class Swagger2Config {
/**
* 用于配置swagger2,包含文档基本信息
* 指定swagger2的作用域(这里指定包路径下的所有API)
* @return Docket
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//指定需要扫描的controller
.apis(RequestHandlerSelectors.basePackage("com.fanqie.springboot2.s