来自另一个常见Schema的JSON Schema定义

时间:2017-10-11 14:15:47

标签: json jsonschema json-schema-validator

我尝试制作一个commonTypes.json架构,该架构将针对几乎所有其他API上使用的特定模式类型进行引用

所以,如果我有

"type": "object",
"properties": {
    "foo": {
         "$ref": "#/definitions/fooString"
    }
},

然后在其中有一个带有fooString的定义部分,它工作正常。但是当我尝试

"type": "object",
"properties": {
    "foo": {
         "$ref": "../common/commonTypes.json#/definitions/fooString"
    }
},

它没有用,我甚至试过把完整的文件路径也不起作用。在网上寻找解决方案时,我想我需要使用" id"但这必须是一条绝对的路径,我们无法在我们正在使用的文件系统上使用它。

关于我如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

您使用的是哪种实施方式?

通常,在尝试加载主模式(包含$ref)之前,您需要确保实现已知$ref的目标。具体如何工作是特定于实现的。

id(draft-04)或$id(draft-06及更高版本)用于识别模式。它不必是文件路径(或者根本不是URL) - 如果您不关心它是否可以通过网络访问,则可以是urn:tag: URI。

因此,如果您可以为目标设置id / $id并确保实施首先理解它,那么您应该$ref id主要架构。