gpt4 book ai didi

spring-boot - 在 OpenApi 3 中展平 RequestParam 对象

转载 作者:行者123 更新时间:2023-12-03 16:21:39 36 4
gpt4 key购买 nike

我正在从 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类

@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 中实现相同的目标。

最佳答案

经过一番研究,我发现 2020 年 4 月 12 日发布了新版本的 openapiui 依赖项,它解决了我的问题。从版本 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);
}

关于spring-boot - 在 OpenApi 3 中展平 RequestParam 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272562/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com