Swagger2 参数为实体类的一部分如何实现已解决
有这样的需求一个实体类中前端只需要传递部分参数如何实现,参考了一些资料后突然灵光一现,话不多说上代码
@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="User对象", description="User实体")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id", hidden = true)
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "账号", name = "username", example = "admin")
@NotBlank(message = "用户名不允许为空, 请重新输入")
private String username;
@ApiModelProperty(value = "姓名")
private String realname;
@ApiModelProperty(value = "密码", name = "password", example = "123123")
@NotBlank(message = "密码不允许为空, 请重新输入")
private String password;
@ApiModelProperty(value = "注册时间", hidden = true)
private Date regtime;
}
主要借助@ApiModelProperty(value = "id", hidden = true)
hidden=true时可以将字段隐藏
hidden也可以替换为readOnly=true改为只读这样POST请求就不会显示
/**
* 注册用户
* @param user
* @return
*/
@ApiOperation(value = "注册方法", httpMethod = "POST")
@PostMapping(value = "/register")
public Result register(@Valid @RequestBody
@ApiParam(name = "user", value = "用户注册", required = true) User user) {
}
@ApiParam(name = "user", value = "用户注册", required = true)
name = "user"与参数user要一致
Swagger页面显示结果如下

实体类中的id、regtime没有在swagger中显示,使用不当之处还请指出

浙公网安备 33010602011771号