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

如何在swagger ui中输入嵌套数组的数据,swagger,swagger-ui,swagger-2.0,swagger-editor,Swagger,Swagger Ui,Swagger 2.0,Swagger Editor,我正在使用asp.NETWebAPI 2构建一个web api,在我的文档中,我选择了swagger 我遇到的问题是,我的一个api方法采用嵌套数组(另一个数组中的字符串数组)。在postman中手动测试时,键入以下内容非常有效: http:/localhost:port/setup?array[0]=key1&array[0]=value1&array[1]=key2&array[1]=value2 但在swagger ui中,我可以输入一个字段,每行只有一个参数。这

我正在使用asp.NETWebAPI 2构建一个web api,在我的文档中,我选择了swagger

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

http:/localhost:port/setup?array[0]=key1&array[0]=value1&array[1]=key2&array[1]=value2
但在swagger ui中,我可以输入一个字段,每行只有一个参数。这使得我无法为每个嵌套数组输入两个值

结果应该如下所示(json):

我已经能够通过上面的查询参数实现这一点。虽然我只能在“招摇过市ui”文本字段中实现以下功能:

[["key1"],["value1"],["key2"],["value2"]]
我已经为一个answare在internet上搜索了1-2个小时,但只能找到一些帖子,询问如何在yaml文件中定义嵌套数组。我在github上读到的一些差事让我觉得这根本不可能。虽然这不是一个关键特性,但如果所有的测试都能正常工作,那就太好了

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

我不是这方面的专家。我在本周学习了如何使用json api和swagger,所以请在复习本教程时牢记这一点


提前谢谢

嵌套数组很简单:

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

如果是键=值对,为什么要使用数组而不是对象/字典<代码>{“key1”:“value2”,“key2”:“value2”}最后,我将其更改为包含参数所有数据的对象列表。最后,我将希望传递的整个对象发布到请求正文中,就像您刚才解释的那样。谢谢你的回答,现在其他人可以在互联网上找到至少一个答案。
paths:
  /setup:
    post:
      consumes:
        - application/json
      parameters:
        - in: body
          name: body
          required: true
          schema:
            type: array
            items:
              type: array
              items: 
                type: string