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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.