swagger2
作者:互联网
文章目录
swagger2
皆来自“狂神说Java”
swagger3有较大的变化
csdn-vip-详细版:https://blog.csdn.net/qq_15973399/article/details/107436089
免费-简易版:https://www.it610.com/article/1291227893636079616.htm
简介
使用
一个看源码的过程,源码里什么都有,缺什么补什么
导包
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
编写配置类
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
}
测试
配置基本显示的信息
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(
new ApiInfo(
"czc的Swagger日志", // 标题
"Api Documentation", // 描述
"1.0",
"urn:tos", // 团队网站连接
// 作者信息
new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
)
);
}
}
配置扫描接口
.select()
// select后一定要用build// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage(“com.czc.controller”))
// 过滤路径–PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()
@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(
new ApiInfo(
"czc的Swagger日志", // 标题
"Api Documentation", // 描述
"1.0",
"urn:tos", // 团队网站连接
// 作者信息
new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
)
)
.select()
// select后一定要用build
// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage("com.czc.controller"))
// 过滤路径--PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()
;
}
}
配置是否开启
.enable(false) // 默认为true,即默认开启
开发环境关闭,测试环境开启
需要 Environment 参数 得到当前环境
@Bean
public Docket docket(Environment environment){
// 通过Profiles类中的of方法得到其对象,传入需要判断的环境名
// 注意包的路径 org.springframework.core.env.Profiles;
Profiles profiles = Profiles.of("dev","test");
// 监听判断当前环境,需要参数Profiles
boolean flag = environment.acceptsProfiles(profiles);
application中选择环境
spring.profiles.active=dev
分组
.groupName(“czc”)
多个分组:在配置类中,注册多个Docket到bean中
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("aaa");
}
@Bean
public Docket docket(Environment environment){
文档中的models
当controller中的方法返回值为一个实体类时,
就会被swagger扫描到,然后放到models中
@GetMapping("/user1")
public User user1(){
return new User();
}
给swagger-ui文档添加注释
@ApiModel() ---------------- 作用在实体类上
@ApiModelProperty() --------------------- 作用在实体类的属性上
@ApiOperation() -------------------- 作用在controller中的方法上
@ApiParam() -------------------- 作用在方法中的参数上
@ApiModel("用户类")
public class User {
@ApiModelProperty("用户名")
public String username;
public String password;
}
=========================================================
@ApiOperation("这是user1方法")
@GetMapping("/user1")
public User user1(){
return new User();
}
@GetMapping(value = "/user2")
public String user2(@ApiParam("参数")String username){
return username;
}
标签:扫描,swagger2,czc,new,Docket,public 来源: https://blog.csdn.net/weixin_52757736/article/details/120958995