Ниже мое поле 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>