我想知道如何创建一个带有继承和外部文件的swagger 2.0 yaml模式来定义子对象。 我尝试了多种方法,但没有得到想要的对象生成。 这是我拥有的基本架构:
SampleObject:
type: object
allOf:
- $ref: '#definitions/SomeObj'
- type: object
discriminator: typeOfObject
properties:
typeOfObject:
type: string
...
...
...
SampleObject1:
description: type of object 1
allOf:
- $ref: '#/definitions/SampleObject'
properties:
...
...
...
SampleObject2:
description: type of object 2
allOf:
- $ref: '#/definitions/SampleObject'
properties:
...
...
...
SampleObject1和SampleObject2都扩展了SampleObject,并且当我在同一文件中定义了所有对象时,生成效果很好。但是我不知道如何在sample_obj_1.yaml中定义SampleObject1和在sample_obj_2.yaml中定义SampleObject2,并在主模式文件中引用它们。
这就是我的做法,但由于SampleObject2不再扩展SampleObject而无法使用:
在main_schema.yaml内部
SampleObject2:
description: type of object 2
allOf:
- $ref: './sample_obj_2.yaml#/SampleObject2'
在sample_obj_2.yaml内部
SampleObject2:
description: inside sample_obj_2.yaml
allOf:
- $ref: './main_schema.yaml#/definitions/SampleObject'
- type: object