当前位置: 首页 > 知识库问答 >
问题:

在OpenApi 3中展平RequestParam对象

年良骏
2023-03-14

我正在从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 2将DTO对象展平为单个查询参数:

在Swagger 2用户界面中,对象作为单个查询参数进行图像展平

OpenApi 3创建JSON对象时:

图像对象不会展平,而是创建一个json对象

我想让OpenApi 3中的扁平化行为像以前在Swagger 2中一样。在OpenAPI3中有没有办法实现同样的功能。

共有1个答案

柯翔
2023-03-14

经过一些研究,我发现openapiui依赖的新版本已经在2020年4月12日发布,它解决了我手头的问题。

<!-- 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>

在查询参数对象解决它之前使用注解@ParameterObject。


   @Operation(summary = "")
        @GetMapping
          public List<Employee> findEmployees(**@ParameterObject** @Valid Dto dto) {
                return employeeService.findEmployees(dto);
                }

 类似资料:
  • 问题内容: 我正在尝试使用没有运气的转换器/封送平整xstream的xml输出。例如, 输出为 但是我需要 这可能吗?如何摆脱B?(C,D,E是唯一命名的)。谢谢。到目前为止,我的尝试是 问题答案: 根据与XStream绑定的方式,您可以使用@XmlPath批注在EclipseLink MOXy中 非常轻松地完成此操作: 有关基于MOXy的XPath映射的信息,请参见: http://bdough

  • 我用DREDD测试我的Api,因为它的规范(考虑到Dredd在Openapi3中编写的痛苦限制)。否 我有一个终结点,如果 Accept 标头设置如此,它将生成 CSV 数据。 当我用Dredd运行测试时,测试失败 我在这里和这里阅读: - 但它们是什么?根据此页面和此页面,似乎足以指定给定类型的响应,但这显然不足以告诉Dredd生成这样的标头。

  • 我有一门java课 在上面的场景中,示例具有子示例,这又是示例列表。此嵌套可以是 n 级。我想实现的是有一个示例列表,即扁平化上面的对象并将所有示例收集到最终列表中(收集所有n级示例)。一个明显的方法是递归。在Java中有什么方法可以更有效地实现它。我尝试了一些java 8概念,但它们不符合要求。

  • 问题内容: 如何从列表列表中制作平面列表? 问题答案: 给定一个列表列表, 意思是: 比到目前为止发布的快捷方式快。(是要展平的列表。) 这是相应的功能: 作为证据,你可以使用标准库中的模块: 说明:基于快捷方式(包括中的隐含使用sum)的必要性是O()当存在L个子列表时-随着中间结果列表的长度越来越长,每一步都会分配一个新的中间结果列表对象,并且所有项目必须复制之前的中间结果中的结果(以及最后添

  • 我花了一段时间才弄明白这一点,我想分享我的解决方案。当然欢迎改进。 参考:在RDD中展平Scala映射,通过反转groupby(即,为其中的每个序列重复标题)来展平序列 我有一个RDD的形式:RDD[(Int,List[(String,List[(String,Int,Float)])]] 关键字:Int 值:List[(String,List[(String,Int,Float)])] 目标是将

  • 我想展平元组的RDD(使用无操作映射),但我得到了一个类型错误: 给予 错误:类型不匹配; 找到:(Int,String)必需:TraversableOnce[?] ap.flat地图(x= s或s的等效列表可以正常工作,例如: Scala能处理吗?如果没有,为什么没有?