英文:
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="/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?
答案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= "XXX", description = "Name of student")
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;
// ........................
}
// 应该与以下依赖项一起工作
```
英文:
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>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论