我有一个名为@JsonView
的{{1}},可以帮助我限制BankAccountView.Public
中的某些字段,因为我不想在公共获取操作中发送其所有属性。我的问题是,当我尝试使用swagger指定它时,因为如果我指定BankAccount
,它将显示整个对象,而不是BankAccount.class
中指定的所有字段,但是如果我指定@JsonView
,它将显示我是一个空的对象。您能否告诉我Swagger是否有可能仅显示公共领域?
这是我的代码:
BankAccount.Public.class
// 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;
}
非常感谢! :)
答案 0 :(得分:0)
If you're using Jackson, you can use @JsonIgnore.
对于其他属性,其他设置隐藏为true
@ApiModelProperty(position = 1, required = true, hidden=true, notes = "used to display user name")