У меня есть @JsonView
с именем BankAccountView.Public
, который помогает мне ограничить некоторые поля в BankAccount
, потому что я не хочу отправлять все их атрибуты в публичной операции get.Моя проблема заключается в том, когда я пытаюсь указать его с помощью swagger, потому что, если я указываю BankAccount.class
, он показывает весь объект вместо всех полей, указанных в моем @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();
}
Большое спасибо!:)