Swagger
- API框架
- RestFul API文档在线自动生成工具,API文档与API定义同步更新
- 直接运行,可以在线调试API接口
- 支持多种语言(Java,PHP)
SpringBoot 集成Swagger
注入依赖
<!--swagger依赖,界面-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
配置Swagger
配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
}
访问localhost:8080/swagger-ui.html
配置Swagger
Swagger
的 Bean实例Docket
apiInfo()
表示页面显示的信息apis()
设置swagger扫描的controller位置,可以设置具体地址basePackage
,或者全部扫描any
,或者都不扫描none
,设置特定注解的类withMethodAnnotation
path()
过滤的请求路径,例如/myself/**
只扫描myself路径下的controllerenable()
是否自动启动,默认为true
//配置Swagger 的 Docket 的 Bean 实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//RequestHandlerSelectors 配置要扫描的接口
.apis(RequestHandlerSelectors.basePackage("myself.swagger.controller"))
.build();
}
private ApiInfo apiInfo(){
return new ApiInfo("自定义Swagger",
"自定义ApiInfo",
"v0.1",
"urn:tos",
new Contact("cccrj", "/", "123@123"),
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<>());
}
假设开发环境运行swagger,但是生产环境不运行,可以在application.yml
中配置
spring:
profiles:
active: pro/dev
//配置Swagger 的 Docket 的 Bean 实例
@Bean
public Docket docket(Environment environment){
//设置显示Swagger的环境
Profiles profiles = Profiles.of("dev", "test");
//通过environment.acceptsProfiles来判断自己是否在设定环境当中
boolean flag = environment.acceptsProfiles(profiles);
System.out.println(flag);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)//开发环境运行,生产环境不运行swagger
.select()
//RequestHandlerSelectors 配置要扫描的接口
.apis(RequestHandlerSelectors.basePackage("myself.swagger.controller"))
.build();
}
配置API文档的分组
groupName("cccrj")
实例多个Docket
命名不同,可以访问不同页面
Swagger测试
通过网页,前段调用接口,查看返回结果
@PostMapping("/user")
public String getUser(String name,Integer age){
User user = new User();
user.setAge(age);
user.setName(name);
return user.toString();
}
测试结果:可以查看成功或者失败的返回情况