Я хотел бы определить объект с BigDecimal как String в swagger.json
Прямо сейчас я могу сделать
"MyObject": {
"type": "object",
"properties": {
"amountOfMoney": {
"type": "string",
"pattern": "d+([.]d+)?"
},
"name": {
"type": "string"
}
},
"title": "MyObject"
}
Другим способом, я могу Определить amountOfMoney как число.
"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://stackoverflow.com/a/40737219
.directModelSubstitute(MyObject .class, String.class)
Я даже могу использовать замену BigDecimal
на String
!Я хотел бы иметь формат для этой строки, чтобы гарантировать, что я получу числа от мин до макс.
Не рекомендуется создавать BigDecimal из чисел. Другая ссылка
https://swagger.io/docs/specification/data-models/data-types/
Документация Swagger для интерфейса Spring Pageable
Например, существует строковый формат для дат,Как мне сделать один для чисел?