SpringBoot集成Swagger
1. 引入依赖
// SpringBoot
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-actuator')
// springfox-swagger
compile('io.springfox:springfox-swagger2:2.9.2')
compile('io.springfox:springfox-swagger-ui:2.9.2')
2. 配置类
2.1. 配置WebMvc
@Configuration
@EnableWebMvc
public class WebMvcConfig {
}
2.2. 配置Swagger
@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("test.hwj.swagger"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("测算项目").description("测算项目API接口文档").version("1.0").build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3. 常用注解
3.1. @Api
用于声明类,属性tags提供说明
3.2. @ApiOperation
用于声明方法,属性value提供说明
3.3. @ApiParam
用于声明参数,属性value提供说明,属性required显示是否为必需项,默认为false
3.3. @ApiImplicitParams和@ApiImplicitParam
用于声明方法,说明方法的参数,与@ApiParam
不同之处在于:
1. 将对参数的说明放在方法声明上,集中在一起;
2. @ApiParam
只适用于和JAX-RS 1.x/2.x联合使用;
3.4. @ApiModel()
用于声明实体类,属性value提供说明
@ApiModelProperty
用于声明实体类字段,属性value提供说明