我们在开发WebAPI的时候,接口文档肯定是少不了的,所以Swagger这类在线接口文档生成工具就显得格外的实用,那么在以前,我们是怎么整合Swagger呢?我们需要先引入依赖包

io.springfoxgroupId>

springfox-swagger2artifactId>

2.9.2version>

dependency>

io.springfoxgroupId>

springfox-swagger-uiartifactId> 2.9.2version>

dependency>

然后新建配置类Swagger2Config并添加@EnableSwagger2的注解:

@Configuration@EnableSwagger2public class Swagger2Config { /** * swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 * @return */ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) .paths(PathSelectors.any()) .build(); } /** * 构建 api文档的详细信息函数,注意这里的注解引用的是哪个 * @return */ private ApiInfo apiInfo() { Contact contact = new Contact("Demo", "http://www.baidu.com", ""); return new ApiInfoBuilder() //页面标题 .title("Demo") //创建人 .contact(contact) //版本号 .version("1.0") //描述 .description("Demo API描述") .build(); }}

然后新建一个DemoController:

@Api(value = "Demo", tags = {"Demo"})@RestController@RequestMapping("query")public class DemoController { @ApiOperation(value = "查询信息", notes = "查询信息") @PostMapping("info") public ResponseEntity queryInfo() { return ResponseEntity.ok("ok!"); }}

好了,一个简单的Swagger文档就配置好了,我们来看看效果

打开网易新闻 查看精彩图片

现在springfox3.0出来了,它为我们提供了简便、快捷的Starter组件,省去了配置这一步,直接引入springfox-boot-starter即可使用

io.springfoxgroupId> springfox-boot-starterartifactId> 3.0.0version> dependency>

我们删除掉Swagger2Config类,再次运行起来看看效果

打开网易新闻 查看精彩图片

那么,是不是觉得Swagger自带的UI不是很喜欢呢?不用担心,现在市面上也有一些其他配套的开源UI也提供了相应的starter,这里我们就用knife4j来替代原来是UI组件,直接引用knife4j starter即可:

com.github.xiaoymingroupId> knife4j-spring-boot-starterartifactId> 2.0.5version>dependency>

此时,我们重新运行,此时如果要访问新UI界面的话,需要访问http://ip:port/doc.html

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

当然,springfox自带的UI原地址http://ip:port/swagger-ui.html也是可以访问的。这里只是简单的演示了如何快速整合Swagger,其所带的注解并未过多的提到,如果有兴趣的,可以去查询相应的资料,如果有时间,后面我们再来整理一版Swagger相关的详细注解说明。