knife4j
官方文档:https://doc.xiaominfo.com/docs/quick-start
配置
引入依赖
xml
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
进行 yaml 配置
yaml
# springdoc-openapi项目配置
springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: com.lh.study
# knife4j的增强配置,不需要增强可以不配
knife4j:
enable: true
setting:
language: zh_cn
访问 http://localhost:8080/doc.html 即可
测试
定义一个实体类和一个 controller
java
@RestController
@RequestMapping("body")
@Tag(name = "地址请求")
public class PersonController {
@Operation(summary = "返回用户信息")
@PostMapping("/body")
public ResponseEntity<Person> body(@RequestBody @Parameter(description = "包括姓名和年龄") Person person){
return ResponseEntity.ok(person);
}
@Operation(summary = "返回用户的参数信息")
@Parameters({
@Parameter(name = "id",description = "文件id",in = ParameterIn.PATH),
@Parameter(name = "token",description = "请求token",required = true,in = ParameterIn.HEADER),
@Parameter(name = "name",description = "文件名称",required = true,in=ParameterIn.QUERY)
})
@PostMapping("/bodyParamHeaderPath/{id}")
public ResponseEntity<Person> bodyParamHeaderPath(@PathVariable("id") String id, @RequestHeader("token") String token, @RequestParam("name")String name, @RequestBody Person person){
person.setName(person.getName()+",receiveName:"+name+",token:"+token+",pathID:"+id);
return ResponseEntity.ok(person);
}
}
实体类
java
@Data
@Schema(description = "Person类")
public class Person {
@Schema(description = "姓名")
private String name;
@Schema(description = "年龄")
private int age;
}