我可以直接在Swagger 2.0中指定响应吗?

时间:2015-02-16 15:54:32

标签: swagger swagger-ui

我按照以下方式定义我的回复:

responses:
  200:
    description: 'An authProvider object'
    schema:
      type: 'array'
      items:
        $ref: '#/definitions/AuthProvider'

我可以在响应中直接附加另一个字段或2吗?我想添加一些我不想加入AuthProvider

的内容

1 个答案:

答案 0 :(得分:6)

每当使用$ref时,它基本上都使用JSON Reference。根据定义(参见链接规范),将忽略与引用本身在同一对象中定义的任何内容。因此,无法在$ref定义的同时直接添加其他属性。

那就是说,你可以使用组合将两个对象“合并”为一个。这是使用allOf JSON Schema指令完成的。这种定义的一个简单示例如下所示:

  allOf: 
    - 
      $ref: "..."
    - 
      properties: 
        property1: 
          type: "string"
        property2: 
          type: "boolean"

注1 :目前各种Swagger工具可能无法完全支持合成。 注2 :与往常一样,通常最好将定义外部化(即使只使用一次),而不是内联定义。