BigDecimal как String в определении Swagger
Я хотел бы определить объект с BigDecimal как String в swagger.json
Прямо сейчас я могу сделать
"MyObject": {
"type": "object",
"properties": {
"amountOfMoney": {
"type": "string",
"pattern": "d+([.]d+)?"
},
"name": {
"type": "string"
}
},
"title": "MyObject"
}
Другим способом, я могу определить сумму денег как число.
"MyObject": {
"type": "object",
"properties": {
"amountOfMoney": {
"type": "number"
"minimum": 0.0,
"maximum": 100.0,
"exclusiveMinimum": false,
"exclusiveMaximum": false
},
"name": {
"type": "string"
}
},
"title": "MyObject"
}
Защита классов Java
public class MyObject {
private BigDecimal amountOfMoney;
private String name;
//Getters, setters.
}
Как применить минимальную и максимальную проверку, как во втором примере?
Обновить
Мы используем springfox 2.8.0.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>2.8.0</version>
</dependency>
У нас есть конфигурация (как бин Spring), где я мог бы добавить замену.
Docket(DocumentationType.SWAGGER_2)
.select()
.paths(PathSelectors.any())
.build()
.pathMapping("/")
// see https://stackru.com/a/40737219
.directModelSubstitute(MyObject .class, String.class)
Я даже могу использовать замену BigDecimal
от String
! Я хотел бы иметь формат для этой строки, чтобы убедиться, что я получу числа между мин и макс.
Не рекомендуется создавать BigDecimal из чисел. Другая ссылка
https://swagger.io/docs/specification/data-models/data-types/
Swagger документация для интерфейса Spring Pageable
Например, есть строковый формат для дат. Как мне сделать один для чисел?