无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新,于是 swagger 应运而生
给 springboot 项目加入 swagger 步骤:
1. 引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
2.编写配置类
在 XxxApplication.java
同级建立配置类 Swagger2.java
,@Configuration
表明该类是一个配置类,被Spring统一管理; @EnableSwagger2
注解用来启动 Swagger2
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.didispace.web"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("更多Spring Boot相关文章请关注:http://blog.didispace.com/")
.termsOfServiceUrl("http://blog.didispace.com/")
.contact("程序猿DD")
.version("1.0")
.build();
}
}
3.在controller 上加上swagger 注解
@ApiOperation(value = "二级列表", tags = "一级列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "参数", value = "参数描述", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "参数", value = "参数描述", dataType = "string", paramType = "query")
})
@PostMapping("/findAssetPage")
public Wrapper<Page<AssetDto>> findAssetPage(){...};