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

Например, есть строковый формат для дат. Как мне сделать один для чисел?

0 ответов

Другие вопросы по тегам