3

I would like to define an object with BigDecimal as String in swagger.json

Right now I can do

"MyObject": {
  "type": "object",
  "properties": {
    "amountOfMoney": {
       "type": "string",
       "pattern": "d+([.]d+)?"
    },
    "name": {
      "type": "string"
    }
  },
  "title": "MyObject"
}

Another way, I can Define amountOfMoney as a number.

"MyObject": {
  "type": "object",
  "properties": {
    "amountOfMoney": {
      "type": "number"
      "minimum": 0.0,
      "maximum": 100.0,
      "exclusiveMinimum": false,
      "exclusiveMaximum": false
    },
    "name": {
      "type": "string"
    }
  },
  "title": "MyObject"
}

Java class defention

public class MyObject {

    private BigDecimal amountOfMoney;
    private String name;

    //Getters, setters.
}

How do I enforce minimum and maximum validation, like in the second example?

Update

We use 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>

We have configuration (as a Spring bean), where I could add a substitute.

Docket(DocumentationType.SWAGGER_2)
    .select()
    .paths(PathSelectors.any())
    .build()
    .pathMapping("/")
    // see https://stackoverflow.com/a/40737219
    .directModelSubstitute(MyObject .class, String.class)

I can even use substitute BigDecimal by String! I would like to have format for that string to ensure I will get numbers between min and max.

It is not recommended to create BigDecimal from numbers. Another link

https://swagger.io/docs/specification/data-models/data-types/

Swagger documentation for Spring Pageable interface

For example, there is string format for dates. How do I make one for numbers?

3
  • What is stopping you from doing the thing you like? Commented Feb 13, 2019 at 11:45
  • @M.Prokhorov I would like to have validation of minimum and maximum. Commented Feb 13, 2019 at 11:48
  • Possible duplicate of Validating JSON against Swagger API schema Commented Feb 13, 2019 at 12:16

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.