如何解决如何在 Swagger UI 中自定义 RequestBody 的示例值
我有 LoginUser.java 作为
@Getter
@Setter
public class LoginUser {
private String fullName;
private String userEmail;
private String userValidCode;
private String institutionCode;
private String password;
}
和控制器为:
@ApiImplicitParam(name = "logginUser",dataTypeClass = LoginUser.class,examples = @io.swagger.annotations.Example(value = {
@ExampleProperty(value = "{'userEmail': 'test','password':'test'}") }))
@PostMapping(value = "/validateCredentials")
private ResponseEntity<LoginUser> validateUserCredentials(@RequestBody LoginUser logginUser) {}
对于 validateUserCredentials 方法,我只需要 LoginUser 的两个成员变量。 但是在 Swagger-UI 示例值中,整个 LoginUser 架构显示为:
{
"fullName": "string","institutionCode": "string","password": "string","userEmail": "string","userValidCode": "string"
}
由于 @ExampleProperty 的尝试方法不起作用,如何在 Swagger -UI 中自定义此示例值?
解决方法
你有两个选择:
第一个方法是创建一个 DTO
@Getter
@Setter
public class LoginUserDto {
private String userEmail;
private String password;
}
并为您服务
private ResponseEntity<?> validateUserCredentials(@RequestBody LoginUserDto logginUser) {}
第二种方法是使用
@ApiModelProperty(hidden = true)
其他用途
@JsonIgnore with @ApiModelProperty(hidden = true)
所以你的实体会像:
@Getter
@Setter
public class LoginUser {
@ApiModelProperty(hidden = true)
private String fullName;
private String userEmail;
@ApiModelProperty(hidden = true)
private String userValidCode;
@ApiModelProperty(hidden = true)
private String institutionCode;
private String password;
}
希望有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。