我正在尝试构建一个Swagger定义文件,该文件使用对象进行输入,但该对象在运行时将具有临时字段名称。我几乎在那里,但似乎无法获得理想的结果。这是相关的yaml:
/connector_properties/{connector_name}:
x-swagger-router-controller: contentBridge
put:
description: Sets properties for the specified connector
operationId: setConnectorProperties
consumes:
- application/x-www-form-urlencoded
parameters:
- name: connector_name
in: path
description: The name of the connector
required: true
type: string
- name: connector_properties
in: body
description: The properties to assign to the connector
required: true
schema:
type: object
additionalProperties:
type: string
responses:
"200":
description: Success
schema:
# a pointer to a definition
$ref: "#/definitions/ParmResponse"
# responses may fall through to errors
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
connector_name参数工作正常,但connector_properties参数只允许我向对象添加一个字段。其他字段只会添加到第一个字段的值。例如,如果我输入
query=somequery
stuff=otherstuff
对于swagger-ui页面中的此字段,(和 ecc 为connector_name)我的程序收到
{
"connectorName": "ecc",
"properties": {
"query": "somequery\nstuff=otherstuff"
}
}
我是否定义错误,输入错误值,或两者兼而有之?如何在此输入参数对象中包含多个ad-hoc字段?
答案 0 :(得分:0)
看起来我的YAML对我想做的事情是正确的。显然,Swagger-UI在这方面有一个bug,或者我不知道如何正确输入参数(可能是后者)。如果我使用Postman之类的外部工具来发送请求而不是Swagger-UI,那么我会得到我期望的行为。