генератор кода openapi - используйте @Digits вместо @DecimalMax / @DecimalMin - PullRequest
1 голос
/ 06 апреля 2019

Ниже мое поле num1, где мне всегда нужны только 2 цифры после точки точности, поэтому я использовал ограничения minimum и maximum в контракте.

properties:
  num1:
    type: number
    minimum: 10.01
    maximum: 50.99

Я включил опцию useBeanValidation при генерации кода. Итак, указанное выше поле openapi num1 создает отображение BigDecimal java, как показано ниже:

@Valid
@DecimalMin("10.01") @DecimalMax("50.99") 
  public BigDecimal getNum1() {
    return num1;
  }

При этом я ожидал, что 10.45 допустим, а 10.451 недействителен. Но 10.451 считается действительным. Я понимаю, что логически 10.451 является действительным, поскольку оно больше, чем значение minimum.

Я обнаружил, что @Digits обеспечивает ожидаемое поведение, но мне нужна помощь, чтобы настроить openapi-generator-maven-plugin (v 3.3.1) для использования @Digits аннотации вместо @DecimalMin / @DecimalMax аннотаций. Кто-нибудь сталкивался с такой проблемой?

Ниже мои config options для openapi-generator-maven-plugin:

<configOptions>
  <interfaceOnly>true</interfaceOnly>
  <dateLibrary>java8-localdatetime</dateLibrary>
  <sourceFolder>openapi</sourceFolder>
  <useBeanValidation>true</useBeanValidation>
  <performBeanValidation>true</performBeanValidation>
  <bigDecimalAsString>true</bigDecimalAsString>
</configOptions>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...