我如何在 swagger 中为嵌套数组输入数据 ui
How do i enter data for nested arrays in swagger ui
我正在使用 asp.net webapi 2 创建一个 uiweb api,对于我的文档,我选择了 swagger。
我遇到的问题是我的一个 api 方法采用嵌套数组(另一个数组中的字符串数组)。在邮递员中手动测试时,当我输入如下内容时效果很好:
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 文件中定义嵌套数组的帖子。我在大摇大摆 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
我正在使用 asp.net webapi 2 创建一个 uiweb api,对于我的文档,我选择了 swagger。
我遇到的问题是我的一个 api 方法采用嵌套数组(另一个数组中的字符串数组)。在邮递员中手动测试时,当我输入如下内容时效果很好:
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 文件中定义嵌套数组的帖子。我在大摇大摆 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