文章目录
原文链接:
swagger3 配置
@Configuration
@EnableOpenApi
public class SwaggerConfig {
// 配置多个分组
@Bean
public Docket docket1(Environment environment){
return new Docket(DocumentationType.OAS_30)
.groupName("common")
.select()
.apis(RequestHandlerSelectors.basePackage("com.hbu.myblog.controller.common"))
.build();
}
@Bean
public Docket docket2(Environment environment){
return new Docket(DocumentationType.OAS_30)
.groupName("blog")
.select()
.apis(RequestHandlerSelectors.basePackage("com.hbu.myblog.controller.blog"))
.build();
}
@Bean
public Docket docket3(Environment environment){
//设置要显示的环境
Profiles profiles = Profiles.of("dev");
//通过environment.acceptsProfiles 判断是否处在自己设定的环境当中。
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.OAS_30)
.groupName("admin")
.apiInfo(apiInfo())//配置swagger信息
//默认就为true 是否启用swagger
.enable(flag)
//RequestHandlerSelectors,配置要扫描接口的方式
//basepackage: 指定要扫描的包
//any()
//none()
//withClassAnnotation: 扫描类上的注解
//withMethodAnnotation: 扫描方法上的注解
.select()
.apis(RequestHandlerSelectors.basePackage("com.hbu.myblog.controller.admin"))
//要过滤的路径
//.paths(PathSelectors.ant("/com/**"))
.build();
}
/**
* 配置swagger信息
*/
private ApiInfo apiInfo(){
return new ApiInfo("MyBlog Api Documentation",
"Api Documentation",
"1.0",
"urn:tos",
new Contact("ZHX", "https://gitee.com/jikezhang", "3136713504@qq.com"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
主要注解
@ApiModel
@ApiModelProperty
@Api(tags = “Test类”):用于类上,为该类进行注释,注意参数必须是“tags”才会有效(默认也不行,因为默认是第一个字段value)
@ApiOperation(“你好 世界”):用于方法上,为该接口进行注释
@ApiImplicitParams():用于方法上,里面还应使用数组的@ApiImplicitParam注解,其作用是为接口字段进行注释,应注意的是,如果接口需要的字段是pojo类型,则该接口就不能使用@ApiImplicitParams注解,如果想为相应字段写注释,则应该在相应的pojo类中使用@ApiModel与@ApiModelProperty
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
dataType:参数类型,默认String,其它值dataType="Integer"
defaultValue:参数的默认值
注意
在正式发布的时候,挂壁Swagger!!! 处于安全考虑,而且节省运行内存。