我尝试制作一个commonTypes.json架构,该架构将针对几乎所有其他API上使用的特定模式类型进行引用
所以,如果我有
"type": "object",
"properties": {
"foo": {
"$ref": "#/definitions/fooString"
}
},
然后在其中有一个带有fooString的定义部分,它工作正常。但是当我尝试
时"type": "object",
"properties": {
"foo": {
"$ref": "../common/commonTypes.json#/definitions/fooString"
}
},
它没有用,我甚至试过把完整的文件路径也不起作用。在网上寻找解决方案时,我想我需要使用" id"但这必须是一条绝对的路径,我们无法在我们正在使用的文件系统上使用它。
关于我如何做到这一点的任何想法?
答案 0 :(得分:0)
您使用的是哪种实施方式?
通常,在尝试加载主模式(包含$ref
)之前,您需要确保实现已知$ref
的目标。具体如何工作是特定于实现的。
id
(draft-04)或$id
(draft-06及更高版本)用于识别模式。它不必是文件路径(或者根本不是URL) - 如果您不关心它是否可以通过网络访问,则可以是urn:
或tag:
URI。
因此,如果您可以为目标设置id
/ $id
并确保实施首先理解它,那么您应该$ref
id
主要架构。