是否可以将定义作为JSON-Schema中的子定义(草案0.7)

时间:2018-03-27 13:22:09

标签: json jsonschema

Ok那么长时间使用JSON一直是JSON-Schema的新手,但是如果有可能有嵌套定义那么我试图解决这个问题吗?

我的意思是:我希望能够使用"$ref":"#definitions/link/post"& "$ref":"#definitions/link/default"帖子在链接下定义。

{
    "$schema": "http://json-schema.org/schema#",
    "id":"https://api.thisisbeacon.com/schemas/",
    "definitions":{
        "link":{
            "default":{
                "$ref":"link/single.schema.json"
            },
            "post":{
                "$ref":"link/post/single.schema.json"
            }
        },
    },
    "$ref":"#definitions/link/post"
}

我正在使用一个有效的测试json

{
    "$schema":"https://api.thisisbeacon.com/schemas/link/post/single.schema.json",
    "url":"http://www.google.com",
    "post":1,
    "channnel":"testing"
}

我在https://www.jsonschemavalidator.net/

上测试架构

现在"$ref":"#definitions/link/default"一个模式的底部纯粹是用于测试,在一个真实的系统中,它不会有任何实际的格式规则,只有定义,但我的目标是让它如此全部任何客户端开发人员都可以使用

进行测试
{ 
    "id":"https://api.thisisbeacon.com/schemas/", 
    "$ref":"schema.json#/definitions/{the_definition_to_test_with}" 
}

在我的测试示例中,我会{the_definition_to_test_with} = link/post

1 个答案:

答案 0 :(得分:0)

因此,在使用JSON-Schema团队后,事实证明我的设置对于我的节点是正确的,def salmonella_params params.require(:salmonella).permit(:title, process_salmonellas_attributes: [ :id, :title, :_destroy, stages_attributes: [ :id, :title, :_destroy, lines_attributes:[ :id, :material, :indicator_name, :_destroy ] ] ]) end 的测试用例是导致问题的原因是它覆盖了在同一个节点中创建的定义文件。

"$ref":"#definitions/link/post"