How to Customise example value of request body and execute it on swagger-ui with springdoc-open-api

13.9k views Asked by At

I have created rest webservice using springboot and added springdoc-open-api for ducumentation of webservice, Now i have 2 question

1-how to add custom test value into request which displying on swagger-ui document page?

2-how to execute the request on click of TRY IT OUT button on swagger-ui document page?

Please refer below code snippet for rest webservice:

@PostMapping(value="/result", consumes={ "application/json"},produces={ "application/json" } )
@Parameter(description  = "Student object need to calculate the score" ,name="InputObject", required = true )
public ResponseEntity<Result> displayResult(@Valid  @RequestBody Student request);

Public class Student{
  String name;
  String birthDate;
  String motherName;
  int rollNo;
  int seatNo;
}

Public class Result{
  int marks;
  String grade;
  double percentage;
}

I have tried to add value of request using @Schema(name = "name", example= "Rubeena", description = "Name of student"), is it right way to add the value in example request ?
Even after adding this schema when i click on TRY IT OUT button i dont get the outcome.

Is there any way to solve this problem?
2

There are 2 answers

3
Ayush v On

use @ApiModelProperty annotation in your dto class.

Example -

Public class Student{
   @ApiModelProperty(value = "name", name = "name", dataType = "String" example = "Rube")
  String name;
   @ApiModelProperty(value = "birthDate", name = "birthDate", dataType = "birthDate" example = "12/12/1995")
  String birthDate;
 ........................
}

//should work with following dependencies 
     <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
0
Rubeena On

Using @Schema annotation, I can provide the value in example request

Public class Student{
@Schema(example= "XXX", description = "Name of student")
 String name;

@Schema(example= "10-10-2020", description = "Birth date of student") String birthDate; ...... }