这个模式在我的项目中反复出现(六次):
type: object
properties:
total:
type: integer
description: the count of all items that match the query
hits:
type: array
description: a single page of results
items:
$ref: '#/definitions/{various schema}'
此重复模式({various schema}
)的内部部分因使用而异。我想为每一个引用共享代码,而不是重复自己。我通常使用$ref
,但由于变量位,这似乎无法在这里工作。
我已尝试让anyOf
为我工作,但它只会改变properties
的{{1}},但我试图改变object
} items
。
我有什么遗失的东西吗?可能是一个小型重构,使其适合可重复使用的模式?
答案 0 :(得分:1)
您可以定义重复的模式,items
约束除外,然后在每个变体中使用allOf
。
您的可重用架构将采用以下方式:
reusable:
type: object
properties:
total:
type: integer
description: the count of all items that match the query
hits:
type: array
description: a single page of results
如果要定义变体,可以使用allOf
添加可重用模式和附加约束:
variation1:
allOf:
- reusable
- properties:
hits:
items:
$ref: '#/definitions/variation_schema'