swagger规范中的模型组合,没有额外的嵌套层

时间:2015-09-25 18:04:31

标签: swagger swagger-ui swagger-editor

如果我有以下示例,其中Settings定义通过合成嵌入Thing

definitions:
  Settings:
    properties: 
      foobar:
        type: number 
        format: double
      boofar:
        type: string 
  Thing:
    properties:
      allOf:
        $ref: '#/definitions/Settings'
      name:
        type: string

如果我在editor.swagger.io中定义一个POST Thing的方法,它最终会构建如下所示的JSON:

{
  settings: {
    foobar: 1,
    boofar: "text here"
  },
  name: "some name"
}

我想使用合成嵌入模型定义但没有额外的嵌套属性定义 - 这可能吗?这是我想要Thing的JSON结构:

{
  foobar: 1,
  boofar: "text here",
  name: "some name"
}

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

您的示例并不真正使用合成,因为caret::train是属性。

allOf应该是定义的根,它是一个模式数组(引用或内联)。

以下是使用allOf作为示例的正确方法:

招摇:'2.0'     信息:       标题:API       版本:1.0.0

allOf

SwaggerUI中的结果渲染:

enter image description here