【问题标题】:Swagger Parameters and Complex TypesSwagger 参数和复杂类型
【发布时间】:2016-08-26 16:04:37
【问题描述】:

在下面的 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

【问题讨论】:

  • 这个参数需要放在formData中吗?
  • 你是对的。我可以将它设置为 body 并使用模式 $ref 我猜......我是 Swagger 的新手,所以我错过了。如果这就是您要提出问题的地方,请发布答案。

标签: swagger


【解决方案1】:

将对象作为参数传递的唯一方法是将其放入主体(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

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 2019-05-12
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多