在 OpenApi 3 中展平 RequestParam 对象
Flattening RequestParam Object in OpenApi 3
我正在从 swagger 2 迁移到 OpenApi 3。
Swagger 2 示例代码
@ApiOperation(value = "", nickname = "")
@GetMapping
public List<Employee> findEmployees(@Valid Dto dto) {
return employeeService.findEmployees(dto);
}
OpenApi 3 代码
@Operation(summary = "")
@GetMapping
public List<Employee> findEmployees(@Valid Dto dto) {
return employeeService.findEmployees(dto);
}
DTO Class
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Dto {
private String status;
private String name;
private String destination;
}
在这两种情况下,swagger-ui 的生成存在显着差异。
Swagger 2 将 DTO 对象显示为扁平化为单个查询参数:
Image Flattening of object as individual query parameters happens in Swagger 2 ui
而 OpenApi 3 创建一个 JSON 对象:
Image Object doesnot flattens but creates a json object
我想在 OpenApi 3 中实现扁平化行为,就像它在 Swagger 2 中那样。
有什么方法可以在 OPENAPI 3 中实现相同的效果。
经过一番研究,我发现新版本的 openapiui 依赖已于 2020 年 4 月 12 日发布,它解决了我手头的问题。从版本 1.3.2 开始可用。
<!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.3.2</version>
</dependency>
查询参数对象前使用Annotation @ParameterObject解决
@Operation(summary = "")
@GetMapping
public List<Employee> findEmployees(**@ParameterObject** @Valid Dto dto) {
return employeeService.findEmployees(dto);
}
我正在从 swagger 2 迁移到 OpenApi 3。
Swagger 2 示例代码
@ApiOperation(value = "", nickname = "")
@GetMapping
public List<Employee> findEmployees(@Valid Dto dto) {
return employeeService.findEmployees(dto);
}
OpenApi 3 代码
@Operation(summary = "")
@GetMapping
public List<Employee> findEmployees(@Valid Dto dto) {
return employeeService.findEmployees(dto);
}
DTO Class
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Dto {
private String status;
private String name;
private String destination;
}
在这两种情况下,swagger-ui 的生成存在显着差异。
Swagger 2 将 DTO 对象显示为扁平化为单个查询参数:
Image Flattening of object as individual query parameters happens in Swagger 2 ui
而 OpenApi 3 创建一个 JSON 对象:
Image Object doesnot flattens but creates a json object
我想在 OpenApi 3 中实现扁平化行为,就像它在 Swagger 2 中那样。 有什么方法可以在 OPENAPI 3 中实现相同的效果。
经过一番研究,我发现新版本的 openapiui 依赖已于 2020 年 4 月 12 日发布,它解决了我手头的问题。从版本 1.3.2 开始可用。
<!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.3.2</version>
</dependency>
查询参数对象前使用Annotation @ParameterObject解决
@Operation(summary = "")
@GetMapping
public List<Employee> findEmployees(**@ParameterObject** @Valid Dto dto) {
return employeeService.findEmployees(dto);
}