Swagger
Swagger优点
1.号称世界上最流行的Api框架;
2.RestFul Api 文档在线自动生成工具=》Api文档与Api定义同步更新(写完代码文档就实时更新)
3.可以直接运行,可以在线测试Api接口;
4.支持多种语言(java,php等)
在项目中使用Swagger
导入jar包
Springboot集成Swagger
- 新建一个SpringBoot web项目
- 导入相关依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
- 编写一个工程
- 配置一个SwaggerConfig
@Configuration //加载到配置里面
@EnableSwagger2 //开启Swagger2
public class SwaggerConfiger {
}
- 测试运行访问swagger-ui.html页面
配置Swagger
Swagger的bean实例Docket;
@Configuration //加载到配置里面
@EnableSwagger2 //开启Swagger2
public class SwaggerConfiger {
//配置了Swagger的Docket的bean实例
@Bean
public Docket docket(Environment environment){
//设置想要显示的Swagger环境
Profiles profiles = Profiles.of("prod");
//通过enviroment.acceptsProfiles判断是否处在自己设定的环境当中
boolean flag = environment.acceptsProfiles(profiles);
System.out.println(flag);
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
// .enable(flag)
.select()
//RequestHandlerSelectors 配置要扫描接口的方式
//basePackage: 指定要扫描的包
//any(): 全部扫描
//none(): 不扫描
//withMethodAnnotation: 扫描方法上的注解
//withClassAnnotation 扫描类上的注解
.apis(RequestHandlerSelectors.withMethodAnnotation(RestController.class))
.build();
}
//配置Swagger信息
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("xxx", "", "");
return new ApiInfo(
"标题",
"描述",
"1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<VendorExtension>());
}