如何将 "Example Value" 添加到 Swagger 中的参数
How to add "Example Value" to a parameter in Swagger
我正在创建一个新的 Rest API 和 Spring Boot 使用 Swagger 来记录它,我无法更改 Web 上显示的示例值。我可以在模型中更改它,但不能在 POST 参数中更改。
这些是我的依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
...
<swagger.version>2.9.2</swagger.version>
...
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
...
我的代码是:
@PostMapping("events")
@ApiOperation(value = "Get events")
public ResponseEntity<List<Event>> events(
@ApiParam(value = "Event type", required = true, example = "sent") final @RequestBody String type) {
return new ResponseEntity<List<Event>>(getEvents.get(type), HttpStatus.OK);
}
请参阅 'string'。
,而不是示例值 'sent'
此注释适用于事件模型,但不适用于此处。
我错过了什么?
根据 @ApiParam
的文档 - example
属性是
a single example for non-body type parameters
但是您为字符串参数使用了 @RequestBody
注释。
在您的情况下:将 @RequestBody
注释更改为 @RequestParam
并且您应该能够在 Swagger UI:
中看到提供的示例
@PostMapping("events")
@ApiOperation(value = "Get events")
public ResponseEntity<List<Event>> events(
@ApiParam(value = "Event type", required = true, example = "sent") final @RequestParam String type) {
return new ResponseEntity<List<Event>>(getEvents.get(type), HttpStatus.OK);
}
对于正文参数,有 examples
属性。查看Springfox Reference Documentation如何使用它。
...
examples = @io.swagger.annotations.Example(
value = {
@ExampleProperty(value = "{'property': 'test'}", mediaType = "application/json")
}))
}
...
我正在创建一个新的 Rest API 和 Spring Boot 使用 Swagger 来记录它,我无法更改 Web 上显示的示例值。我可以在模型中更改它,但不能在 POST 参数中更改。
这些是我的依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
...
<swagger.version>2.9.2</swagger.version>
...
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
...
我的代码是:
@PostMapping("events")
@ApiOperation(value = "Get events")
public ResponseEntity<List<Event>> events(
@ApiParam(value = "Event type", required = true, example = "sent") final @RequestBody String type) {
return new ResponseEntity<List<Event>>(getEvents.get(type), HttpStatus.OK);
}
请参阅 'string'。
,而不是示例值 'sent'此注释适用于事件模型,但不适用于此处。
我错过了什么?
根据 @ApiParam
的文档 - example
属性是
a single example for non-body type parameters
但是您为字符串参数使用了 @RequestBody
注释。
在您的情况下:将 @RequestBody
注释更改为 @RequestParam
并且您应该能够在 Swagger UI:
@PostMapping("events")
@ApiOperation(value = "Get events")
public ResponseEntity<List<Event>> events(
@ApiParam(value = "Event type", required = true, example = "sent") final @RequestParam String type) {
return new ResponseEntity<List<Event>>(getEvents.get(type), HttpStatus.OK);
}
对于正文参数,有 examples
属性。查看Springfox Reference Documentation如何使用它。
...
examples = @io.swagger.annotations.Example(
value = {
@ExampleProperty(value = "{'property': 'test'}", mediaType = "application/json")
}))
}
...