+-

我很难弄清楚如何在OpenAPI 2.0中嵌套模型。
目前有:
SomeModel:
properties:
prop1:
type: string
prop2:
type: integer
prop3:
type:
$ref: OtherModel
OtherModel:
properties:
otherProp:
type: string
我尝试了许多其他方式:
prop3:
$ref: OtherModel
# or
prop3:
schema:
$ref: OtherModel
# or
prop3:
type:
schema:
$ref: OtherModel
以上似乎都不起作用。
但是,使用数组可以正常工作:
prop3:
type: array
items:
$ref: OtherModel
22
投票
投票
在OpenAPI 2.0中对其建模的正确方法是:
swagger: '2.0'
...
definitions:
SomeModel:
type: object
properties:
prop1:
type: string
prop2:
type: integer
prop3:
$ref: '#/definitions/OtherModel' # <-----
OtherModel:
type: object
properties:
otherProp:
type: string
如果使用OpenAPI 3.0,则模型位于components/schemas
而不是definitions
:
openapi: 3.0.1
...
components:
schemas:
SomeModel:
type: object
properties:
prop1:
type: string
prop2:
type: integer
prop3:
$ref: '#/components/schemas/OtherModel' # <-----
OtherModel:
type: object
properties:
otherProp:
type: string
由于其他关键字type: object
,因此请记住将type is not inferred添加到对象模式。