Swagger是一个用于管理接口文档的开源工具,方便前后端程序员
在springboot中集成swagger
注意这里不能使用超过2.10的版本,否则启动不了
<!-- 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 {
@Bean
public Docket docket1() {
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
//配置swagger的bean实例
@Bean
public Docket docket(Environment environment) {
//设置要显示的swagger环境
Profiles profiles = Profiles.of("dev", "test");
//获取项目的环境,通过environment.acceptsProfiles判断是否处在自己设定的环境当中
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("fang")
.enable(flag)
//以下三个是绑定的
.select()
//any() 扫描全部
//none() 都不扫描
//withClassAnnotation() 扫描类上的注解 参数是一个反射对象
//withMethodAnnotation() 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage("com.fang.controller"))//RequestHandlerSelectors,配置扫描的接口
// .paths(PathSelectors.ant("/fang/**")) //paths() 过滤路径
.build();
}
//配置swagger信息=apiInfo
private ApiInfo apiInfo() {
//作者信息
Contact contact = new Contact("fang", "暂无", "邮箱");
return new ApiInfo(
"fang的测试日记",
"这个作者有点酷!",
"v1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList()
);
}
}
- swagger需要托管给springboot,并且需要开启swagger2(新版)。类前面的两个注释
swagger
需要Docket
,我们自己new一个,参数固定。后面apiInfo
需要自己定义。groupName
表示这是谁开发的接口。enable
是设置在项目一些环境下开启使用,如果项目已经写好发布,则不应该再开启swagger。apis
是指定扫描的接口,一般都用basePackage
,也可以any(),none(),withClassAnnotation(),withMethodAnnotation(),注释有说明。记得加@Bean
注释- new的
ApiInfo
第一个参数是名字,第二个是说明。这里两个是说明接口的作用,最主要。第三个是版本,第四个是团队网站,可以写公司官网,contact
是作者信息(名字,个人网址,邮箱),后面两个是swagger是信息。 Docket
需要多少个就写多少个,一般都自写自己一个。
运行一下。
这样swagger就配置可以了,但是不够!我们的接口还需要有文档说明,有些类比较复杂,字段需要有注释。
说明:如果接口中有返回实体类的,便会被swagger
扫描,如:
@PostMapping("/user")
public User user() {
return new User();
}
- 在方面加上
@ApiOperation("说明")
- 实体类上加
@ApiModel("用户实体类")
注解,字段加@ApiModelProperty("xx字段")
可以看到
点击try it out
即可对方法进行测试。
这里会有详细的测试信息,报错也在这里会显示。
Swagger
入门就到这里。这些基本上就是常用的了,也没多少东西。