使用对象作为输入时,未获得Swagger 2.0架构的预期结果

时间:2016-12-02 03:31:42

标签: swagger swagger-ui

我正在尝试构建一个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字段?

1 个答案:

答案 0 :(得分:0)

看起来我的YAML对我想做的事情是正确的。显然,Swagger-UI在这方面有一个bug,或者我不知道如何正确输入参数(可能是后者)。如果我使用Postman之类的外部工具来发送请求而不是Swagger-UI,那么我会得到我期望的行为。