如何自定义请求体的示例值,并在使用springdoc-open-api时在swagger-ui上执行它。

huangapple go评论74阅读模式
英文:

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

问题

我已经使用Spring Boot创建了REST Web服务,并添加了springdoc-open-api来对Web服务进行文档化。现在我有两个问题:

1- 如何将自定义测试值添加到请求中,以便在swagger-ui文档页面上显示?

2- 如何在swagger-ui文档页面上点击“尝试”按钮后执行请求?

请参考以下REST Web服务的代码片段:

@PostMapping(value="/result", consumes={ "application/json"}, produces={ "application/json" } )
@Parameter(description  = "需要计算分数的学生对象" ,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;
}

我尝试使用@Schema(name = "name", example= "Rubeena", description = "学生的姓名")来添加请求的值,这样做的方式对吗?即使在添加了此模式后,当我点击“尝试”按钮时,我也无法获得结果。

有没有解决这个问题的方法?

英文:

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=&quot;/result&quot;, consumes={ &quot;application/json&quot;},produces={ &quot;application/json&quot; } )
@Parameter(description  = &quot;Student object need to calculate the score&quot; ,name=&quot;InputObject&quot;, required = true )
public ResponseEntity&lt;Result&gt; 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 = &quot;name&quot;, example= &quot;Rubeena&quot;, description = &quot;Name of student&quot;), 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?

答案1

得分: 8

使用 @Schema 注解,我可以在示例请求中提供值

public class Student {
    @Schema(example = "XXX", description = "学生姓名")
    String name;
    @Schema(example = "10-10-2020", description = "学生出生日期")
    String birthDate;
    // ...
}
英文:

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

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

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

答案2

得分: 1

使用 @ApiModelProperty 注解在您的 DTO 类中。

示例 -

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;
  // ........................
}

// 应该与以下依赖项一起工作



io.springfox
springfox-swagger2
2.9.2



io.springfox
springfox-swagger-ui
2.9.2

```

英文:

use @ApiModelProperty annotation in your dto class.

Example -

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

//should work with following dependencies 
     &lt;!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.springfox&lt;/groupId&gt;
            &lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;
            &lt;version&gt;2.9.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.springfox&lt;/groupId&gt;
            &lt;artifactId&gt;springfox-swagger-ui&lt;/artifactId&gt;
            &lt;version&gt;2.9.2&lt;/version&gt;
        &lt;/dependency&gt;

huangapple
  • 本文由 发表于 2020年10月23日 21:37:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/64501089.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定