前言
SpringBoot集成Knife4j可看另一篇文章:http://t.csdnimg.cn/bmPhj
Knife4j常用注解
1,@Tag
添加在controller类上,可以指定该 controller 模块的名称。knife4j默认根据字母排序,加上序号后会根据序号排序。
@Tag(name = "管理后台 - 01.登录校验",description = "登录校验相关接口")
2,@Operation
该注解放在 controller 类下的请求方法上,可以指定该请求/方法的作用。添加后可以在对应的 控制层模块下查看该请求。
@PostMapping("/logout")
@Operation(summary = "退出系统")
public CommonResult<String> logout() {
return success("success");
}
3,@Parameters和@Parameter
用于对请求方法的参数列表中那些未封装的参数进行说明。如果有多个参数时需要使用@Parameters包起来。
@PostMapping("/login")
@Operation(summary = "使用账号密码登录")
@Parameters({
@Parameter(name = "username", description = "用户名", required = true),
@Parameter(name = "password", description = "密码", required = true)
})
public CommonResult<String> login(
@RequestParam("username") String username,
@RequestParam("password") String password
) {
return success(username+password);
}
4,@Schema
作用在实体类及其属性上,用于描述实体及其属性。
requiredMode = Schema.RequiredMode.REQUIRED:表示该参数是必须的。
@Schema(name = "登录VO", description = "登录校验 - 接收登录请求参数 request vo")
@Data
public class LoginReqVO {
@Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED,example = "admin")
@NotBlank(message = "用户名不能为空")
@Length(min = 4, max = 16, message = "用户名长度为 4 到 16 个字符")
@Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母")
private String username;
@Schema(description = "用户密码", requiredMode = Schema.RequiredMode.REQUIRED,example = "123456")
@NotBlank(message = "密码不能为空")
private String password;
}
默认值是类名,但可以使用@Schema注解的name属性修改默认值
注意:该注解只有在 controller 中被使用后才会生效,不然api文档中不会出现该实体的描述。
大功告成,一起学习起来吧!!!