Swagger(API框架)
Swagger简介
- Api文档在线自动生成工具 ==> Api文档与API定义同步更新
- 直接运行,可以在线测试API接口
- 支持多种语言
在项目中使用 需要springfox
- swagger2
- ui
1、导入maven依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2、Hello工程
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello";
}
}
3、swagger的Bean配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
}
4、配置swagger的Docet的Bean实例
@Configuration
@EnableSwagger2
public class SwaggerConfig {
// 配置了Swagger的Docket的Bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}
// 配置swapper信息 = apiInfo
private ApiInfo apiInfo(){
Contact contact = new Contact("杭州金毅科技", "http://www.jinyi-tech.com/", "");
return new ApiInfo(
"标题:Api Documentation"
, "描述:Api Documentation"
, "1.0"
, "http://www.jinyi-tech.com/"
, contact
, "Apache 2.0"
, "http://www.apache.org/licenses/LICENSE-2.0"
, new ArrayList());
}
}
5、swagger扫描接口方式
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.enable(false)// enable 是否启动swagger false不启动 swagger在浏览器中无法访问
.select()
// RequestHandlerSelectors 配置要扫描接口的方式
// basePackage 指定要扫描的包
// any 扫描全部
// none 不扫描
// withClassAnnotation 扫描类上的注解,参数是一个注解的反射对象
// withMethodAnnotation 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage("com.hzjykj.swagger.controller"))
// .path() 过滤什么路径
.build();
}
6、是否开启swagger(enable)
// 配置了Swagger的Docket的Bean实例
@Bean
public Docket docket(Environment environment){
// 设置要显示的swagger环境
Profiles profiles = Profiles.of("dev","test");
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.enable(flag)// enable 是否启动swagger false不启动 swagger在浏览器中无法访问
.select()
.apis(RequestHandlerSelectors.basePackage("com.hzjykj.swagger.controller"))
.build();
}
7、配置分组
.groupName("金毅") // 配置API文档的分组
如何配置多个分组
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3(){
return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}
8、注释
- @ApiModel("用户实体类")
- @ApiModelProperty("用户名")
- @ApiOperation("Hello2加用户测试类")
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
@PostMapping("/user")
public User user(){
return new User();
}
@ApiOperation("Hello2加用户测试类")
@PostMapping("/hello2")
public String hello2(@ApiParam("用户名") String userName){
return "hello"+userName;
}
@PostMapping("/user2")
public User user2(User user){
return user;
}
}

浙公网安备 33010602011771号