Swagger 参数和复杂类型

Swagger Parameters and Complex Types

在下面的 Swagger 定义中,我需要参数 labelValue 的类型为 LabelValueObject,以便对其进行验证和正确反序列化。但是,我无法弄清楚语法!怎么做到的?

swagger: "2.0"

paths:
  /competition:
    post:
      parameters:
        - name: labelValue
          in: formData
          type: array
          items:
            type: string       ### this has to be a LabelValueObject ###
      responses:
        default:
          description: Error
          schema:
            $ref: "#/definitions/AnyResponse"

definitions:
  AnyResponse:
    properties:
      any:
        type: string
  LabelValueObject:
    properties:
      label:
        type: string
      value:
        type: string
    required:
      - label
      - value

将对象作为参数传递的唯一方法是将其放在正文 (in: body) 中,然后在 schema 中定义此对象(内联定义或对预定义对象的引用$ref)。这是一个完整的例子:

swagger: "2.0"

info:
  title: A dummy title
  version: 1.0.0

paths:
  /competition:
    post:
      parameters:
        - name: labelValue
          in: body
          schema:
            $ref: '#/definitions/LabelValueObject'
      responses:
        default:
          description: Error
          schema:
            $ref: "#/definitions/AnyResponse"

definitions:
  AnyResponse:
    properties:
      any:
        type: string
  LabelValueObject:
    properties:
      label:
        type: string
      value:
        type: string
    required:
      - label
      - value