Knife4j集成到SpringBoot框架项⽬
1. 在maven项⽬的l中引⼊Knife4j的依赖包
<dependency>
<groupId>com.github.xiaoymin</groupId>
springboot原理是什么<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
2. 创建Swagger配置WebMvcConfig.java依赖
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("⼩鱼访客API⽂档")
.description("⼩鱼访客API⽂档")
.termsOfServiceUrl("/")
.contact("xx@qq")
.version("1.0")
.build())
//分组名称
.
groupName("2.X版本")
.select()
//这⾥指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.github.ller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
3. IndexController.java包含⼀个简单的RESTful接⼝
@Api(tags = "⾸页模块")    //模块描述
@RestController
public class IndexController {
@ApiImplicitParam(name = "name",value = "姓名",required = true)  //参数描述
@ApiOperation(value = "向客⼈问好")    //接⼝描述
@GetMapping("/sayHi")
public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
return ResponseEntity.ok("Hi:"+name);
}
}
4. 启动Spring Boot⼯程,在浏览器中访问:
即可访问到这个⾃动化api接⼝⽂档
5. 写在Controller⾥的常⽤注解
@Api():⽤在请求的类上,表⽰对类的说明,也代表了这个类是swagger2的资源
参数
tags="说明该类的作⽤,参数是个数组,可以填多个。"
value="该参数没什么意义,在UI界⾯上不显⽰,所以不⽤配置"
description = "⽤户基本信息操作"
@ApiOperation():⽤于⽅法,表⽰⼀个http请求访问该⽅法的操作
参数
value="⽅法的⽤途和作⽤"
notes="⽅法的注意事项和备注"
tags:说明该⽅法的作⽤,参数是个数组,可以填多个。
格式:tags={"作⽤1","作⽤2"}
@ApiImplicitParam:⽤于⽅法,表⽰单独的请求参数
name="参数ming"
value="参数说明"
dataType="数据类型"
paramType="query"表⽰参数放在哪⾥
· header-->请求参数的获取:@RequestHeader(代码中接收注解)
· query-->请求参数的获取:@RequestParam(代码中接收注解)
· path(⽤于restful接⼝)-->请求参数的获取:@PathVariable(代码中接收注解)
· body-->请求参数的获取:@RequestBody(代码中接收注解)
· form(不常⽤)
defaultValue="参数的默认值"
required="true" 表⽰参数是否必须传
@ApiImplicitParams:⽤在请求的⽅法上,包含多@ApiImplicitParam
⼀般写成如下
@ApiImplicitParams({
@ApiImplicitParam(),
@ApiImplicitParam()
})
@ApiModel():⽤于响应实体类上,⽤于说明实体作⽤
description="描述实体的作⽤"
@ApiModelProperty:⽤在属性上,描述实体类的属性
value="⽤户名"描述参数的意义
name="name"参数的变量名
required=true参数是否必选
@ApiParam():⽤于⽅法,参数,字段说明表⽰对参数的要求和说明
name="参数名称"
value="参数的简要说明"
defaultValue="参数默认值"
required="true" 表⽰属性是否必填,默认为false
@ApiResponses:⽤于请求的⽅法上,根据响应码表⽰不同响应
  ⼀个@ApiResponses包含多个@ApiResponse
@ApiResponse:⽤在请求的⽅法上,表⽰不同的响应
参数:
code="404"表⽰响应码(int型),可⾃定义
message="状态码对应的响应信息"
@ApiIgnore():⽤于类或者⽅法上,不被显⽰在页⾯上
@Profile({"dev", "test"}):⽤于配置类上,表⽰只对开发和测试环境有⽤
6. 范例
@ApiOperation("获取活动详细信息")
@ApiImplicitParams({
  @ApiImplicitParam(name = "Authentication", value = "令牌", paramType = "header", dataTypeClass = String.class, required = true),  @ApiImplicitParam(name = "uId", value = "活动ID", paramType = "query", dataTypeClass = String.class, required = true)
})

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。