Swagger2是什么
Swagger2是一个可以和SpringBoot无缝结合的Restful风格Document生成工具,并且可以提供简单的debug调试功能。在笔者本身的开发过程中,使用Swagger2,可以省去大量维护接口文档的工作。想一下,如果你的接口随着业务变动进行修改时,需要一遍遍的来维护开发文档,是不是一件很痛苦的事情,而Swagger2就很好地解决了这一问题。下面我们就来简单的介绍一下这个“速效救心丸”(天天烦恼写文档,小心脏砰砰的)的使用办法。
介绍Swagger2之前我们还是老规矩,先将chapter_3下的代码复制一份并简单修改一下,放置于新建的chapter_4下。
Swagger2简单使用
首先引入Swagger2的依赖
然后添加配置类
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency>
在chapter_4同级目录下新建一个config包,存放我们对于Swagger2的配置类,并创建SwaggerConfig配置类,创建后的目录如下
Swagger2Config配置类代码如下
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("willem.weiyu.microService"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SpringBoot中使用Swagger2构建RESTful APIs")
.description("关注https://blog.csdn.net/wy1990520,一起学习SpringBoot")
.version("1.0")
.build();
}
}
修改Chapter4Controller代码如下
@RestController
@RequestMapping(value = "/chapter_4")
public class Chapter4Controller {
@Value("${my.name}")
private String name;
@ApiOperation(value = "获取配置文件中的属性值")
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(){
return "hello,my name is "+name;
}
}
然后我们启动项目,在浏览器中访问http://localhost:8090/swagger-ui.html(需要替换为你自己的IP地址及端口),得到如下页面
可以看到,我们的接口已经显示在页面上了。接下来点击chapter-4-controller,就可以看到此controller下的接口,如下图
点击此方法,然后点击Try it out——>Execute,得到如下运行结果
红框中即为我们次接口的返回值。
从以上这一系列操作可以看出,Swagger2可以很容易的帮我们生成API文档,而且还附带简单的DEBUG功能,大大提高我们的开发效率,让开发人员将经历更集中在设计及开发上,而不是耗费大量精力进行开发文档维护。
项目结构图如下
项目地址:https://github.com/Willem520/spring-boot-learning.git,源码位于chapter_4文件夹下