我的POST方法主体中有一个嵌套数组作为参数:
parameters:
- in: body
name: matrix
description: blabla
schema:
type: array
items:
schema:
type: array
items:
schema:
type: double
我想为此数组添加一个示例,使其在Swagger UI中可见。我尝试了以下操作,但是似乎不起作用-正文字段中没有显示任何示例。如果我在Swagger UI的body字段中手动输入[[1.0, 2.0],[3.0, 4.0]]
,则效果很好。
parameters:
- in: body
name: matrix
description: blabla
schema:
type: array
items:
schema:
type: array
items:
schema:
type: double
example: [[1.0, 2.0],[3.0, 4.0]]
更新:实施了海伦的建议后,外观如下:
答案 0 :(得分:2)
这是正确的版本:
parameters:
- in: body
name: matrix
description: blabla
schema:
type: array
items:
type: array
items:
type: number
format: double
example: [[1.0, 2.0],[3.0, 4.0]]
修复列表:
schema
下的items
。type: double
应该为type: number
+ format: double
(请参阅Data Types)。example
应该在模式中的type: array
旁边。参数本身不支持example
关键字。您可以使用在线Swagger Editor来检查规范中是否存在语法错误,它将标记出带有错误的行。
如果主体是基元数组,则Swagger UI 2.x不会显示主体参数示例。最新版本Swagger UI 3.x没有此问题。
2.x的可能解决方法是将x-examples.default
键添加到body参数,然后将示例值指定为字符串:
parameters:
- in: body
name: matrix
description: blabla
schema:
type: array
items:
type: array
items:
type: number
format: double
example: [[1.0, 2.0],[3.0, 4.0]]
x-examples:
default: '[[1.0, 2.0],[3.0, 4.0]]' # <-----