模型响应包含swagger中不同对象类型的数组

时间:2016-12-13 19:50:39

标签: swagger

我想在swagger中建模一个包含不同类型对象数组的响应对象,如下所示:

{
   "table": [
        {
          "user" : []
        },
        {
          "customer": []
        },
        {
           "employee": []
        }
    ]
}

我在下面尝试了一个解决方案,但它将所有属性包装在一个对象{[{“user”:[],“customer”:[]}]}中。

  responses:
    200:
      schema:
        type: array
        items:
          type: object
          properties:
            user:
              type: array
              items:
                $ref: '#/definitions/User'
            customer:
              type: array
              items:
                $ref: '#/definitions/Customer'
            employee:
              type: array
              items:
                $ref: '#/definitions/Employee' 

1 个答案:

答案 0 :(得分:2)

这将在下一版本的OpenAPI规范(3.0)中得到支持,以下是有关此功能的相关讨论:

https://github.com/OAI/OpenAPI-Specification/issues/57

以下是一个示例(在上面的URL中提供):

{
  "oneOf": [
    { "$ref": "Cat" },
    { "$ref": "Dog" }
  ]
}