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

如何在 swagger UI 中输入嵌套数组的数据

云韬
2023-03-14

我正在使用asp构建一个web api。netwebapi 2,对于我的文档,我选择了swagger。

我遇到的问题是我的一个api方法采用嵌套数组(另一个数组中的字符串数组)。在postman中手动测试时,当我键入以下内容时效果很好:

http:/localhost:port/setup?array[0]=key1&array[0]=value1&array[1]=key2&array[1]=value2

但是在swagger-ui中,我只输入一个字段,每行只有一个参数。这使得我不能为每个嵌套数组输入两个值。

结果应如下所示 (json):

[["key1","value1"],["key2","value2"]]

这是我通过上面的查询参数实现的。虽然我只能在swagger ui文本字段中实现以下功能:

[["key1"],["value1"],["key2"],["value2"]]

为了一个answare,我已经在互联网上打扫了1-2个小时,但是只能找到询问如何在yaml文件中定义嵌套数组的帖子。我在swagger github上读到的一些差事让我认为这根本不可能。虽然这不是一个关键特性,但如果所有的测试都能正常工作,那就太好了。

所以问题是,如果可能的话,我如何在swagger-ui中的嵌套数组中键入两个单独的字符串。

我在这些方面都不是专家。我学会了如何使用json api和swagger,所有这些都是本周的事情,所以请在回顾这篇文章时记住这一点。

先谢谢!

共有1个答案

翟展
2023-03-14

嵌套数组很简单:

type: array
items:
  type: array
  items: 
    type: string

但是OpenAPI/Swagger无法像您的示例那样序列化查询字符串中的嵌套数组。

如果数组有固定数量的项,可能的解决方法是将每个嵌套数组定义为一个单独的查询参数:

paths:
  /setup:
    get:
      parameters:
        - in: query
          name: array[0]
          required: true
          type: array
          items:
            type: string
          collectionFormat: multi   # array[0]=key1&array[0]=value1
        - in: query
          name: array[1]
          required: true
          type: array
          items:
            type: string
          collectionFormat: multi   # array[1]=key2&array[1]=value2

更好的方法是使用 POST 请求并在请求正文中传递数组:

paths:
  /setup:
    post:
      consumes:
        - application/json
      parameters:
        - in: body
          name: body
          required: true
          schema:
            type: array
            items:
              type: array
              items: 
                type: string
 类似资料:
  • 我正在努力实现以下转变。然而,我的解决方案在最终数组中添加了不需要的空值。 转换需要为所有元素在array中移位名称。我创建了3个案例来说明这个问题。 编辑:< code >根数组将始终至少有1个元素。 当前的JOLT规范工作正常,除了是空数组的情况。它生成值,我试图指定一个空字符串(或任何硬编码的字符串值,如)

  • 下面是一个java类CreateDoc,它从一个作为生产者端的web服务发送到另一个作为消费者端的web服务,其内容类型为:json 下面是类表示 一旦我在消费者端接收到作为json的列表,我就不能将其用作java对象,并且内容类型是数组,其中json嵌套在数组中。 以下是代表: 问题是如何处理这一点,并能够使用数据和表示为列表。

  • 问题内容: 如我们所知,通过使用方法将数组展平 那么如何将此数组展平到? 问题答案: 这是递归的一种替代方法,并且应接受任何深度级别,以避免堆栈溢出。

  • 我有以下文件: 第一份文件: 第二份文件: 我知道如果我想按产品名称分组,我可以使用聚合 这将给我两个桶,两个不同的键“product1”,“product2”。 但是,如果我想按标记键分组,查询应该是什么?i、 e.我想按name==key1的标记分组,然后我希望有一个key=“value1”的bucket;而如果我按name==key2的标记分组,我希望结果是两个bucket,其键为“valu

  • 本文向大家介绍C ++中的数组嵌套,包括了C ++中的数组嵌套的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个长度为N的零索引数组A,其中包含从0到N-1的所有整数。我们必须找到并返回集合S的最长长度,其中S [i] = {A [i],A [A [i]],A [A [A [i []]],...}以下规则。现在考虑S中的第一个元素以索引= i的元素A [i]的选择开始,S中的下一个元素应为A

  • 我有一个mongodb文档,我正在使用axios ajax调用来提取它。文档有一个对象数组,其中还包含一个嵌套的对象数组。每个对象都分配了一个mongo id。最顶端的数据显示在相应的最顶端的表示组件中,但对象的后续阵列不会显示在其相对表示组件中。我得到的错误是。“TypeError:this.props.card.rdfts未定义”,但会显示它的非数组同级。然而,当我查看react-dev工具和