如何在swagger ui中输入嵌套数组的数据
我正在使用asp.NETWebAPI 2构建一个web api,在我的文档中,我选择了swagger 我遇到的问题是,我的一个api方法采用嵌套数组(另一个数组中的字符串数组)。在postman中手动测试时,键入以下内容非常有效:如何在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中,我可以输入一个字段,每行只有一个参数。这
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