带有Swagger @ApiResponse的JsonView类

时间:2019-02-27 22:55:47

标签: java spring spring-boot swagger swagger-ui

我有一个名为@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;
}

非常感谢! :)

1 个答案:

答案 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")