java - 带有 Swagger @ApiResponse 的 JsonView 类
问题描述
我有一个@JsonView
名字BankAccountView.Public
帮助我限制某些字段,BankAccount
因为我不想在公共获取操作中发送他们的所有属性。我的问题是当我尝试使用 swagger 指定它时,因为如果我指定BankAccount.class
它会显示整个对象而不是 my 中指定的所有字段@JsonView
,但是如果我指定BankAccount.Public.class
它会显示一个空对象。您能否告诉我 Swagger 是否可能仅显示公共字段?
这是我的代码:
// BankAccount Json View
public class BankAccountView {
public static class Public {}
}
// BankAccount class
@ApiModel("BankAccount")
public class BankAccount {
@ApiModelProperty
@JsonView(BankAccountView.Public.class)
private Long accountId;
@ApiModelProperty
private Long owner;
@ApiModelProperty
@NotBlank
@JsonView(BankAccountView.Public.class)
private String currency;
@ApiModelProperty
@NotBlank
@JsonView(BankAccountView.Public.class)
private String bankName;
@ApiModelProperty
@JsonView(BankAccountView.Public.class)
private BankAccountType accountType;
@ApiModelProperty
@JsonView(BankAccountView.Public.class)
private BankAccountStatus status;
@ApiModelProperty
private Instant verificationDate;
@ApiModelProperty
@JsonView(BankAccountView.Public.class)
private String mask;
}
// BankAccountController class
@ApiOperation(value = "Fetch a list of all bank accounts")
@JsonView({BankAccountView.Public.class})
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Bank accounts successfully retrieved", response = BankAccountView.Public.class, responseContainer = "List"),
@ApiResponse(code = 400, message = "Validation failed", response = ApiHttpClientErrorException.class),
@ApiResponse(code = 403, message = "User is not an employee", response = ResourceForbiddenException.class),
@ApiResponse(code = 404, message = "User not found", response = NoSuchElementException.class),
@ApiResponse(code = 500, message = "Internal server error", response = ApiHttpServerErrorException.class)
})
@GetMapping
public List<BankAccount> getAllBankAccounts() {
return service.getAll();
}
非常感谢!:)
解决方案
If you're using Jackson, you can use @JsonIgnore.
否则为个别属性设置隐藏真
@ApiModelProperty(position = 1, required = true, hidden=true, notes = "used to display user name")
推荐阅读
- ios - 如何在 UITextField 中允许表情符号
- python - 使用python从MySQL数据库中检索图像
- hosting - 网站主机不见了 | 恢复旧网站
- mysql - 创建提取字符串 sql 的新列
- c# - 在 ASP.NET MVC 中使用 C# 推送通知
- c# - HttpWebRequest 在 c# 中返回错误,适用于简单的 php 示例
- python - Tensorflow 对象检测 API:检测到特定类时将 GPIO 引脚设为高电平
- jenkins - Jenkins X 在预览环境中使用机密
- android - 位图分辨率问题
- excel - Excel VBA CustomSort从范围