Использование $ ref и других свойств в схеме JSON - PullRequest
1 голос
/ 25 июня 2019

В JSON-схеме допустимо иметь $ref, а затем другие свойства в той же схеме, например.

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "title": "My schema",
    "properties": {
        "scripts": {
            "$ref": "#/definitions/scriptsBase",
            "description": "More docs.",
            "minLength": 10
        }
    },
    "definitions": {
        "scriptsBase": {
            "type": "string",
            "description": "Base Description",
            "minLength": 5
        }
    }
}

Если это допустимо, то каковы правила разрешения свойств, определенных в схемах $ref ed и $ref ing (в этом примере minLength и description. Но потенциально это может стать гораздо сложнее, если allOf и т. д., где определено в обоих.

1 Ответ

1 голос
/ 25 июня 2019

Нашел ответ в описании свойства схемы json и использовании "$ ref" , в основном, если существует $ ref, все остальные свойства игнорируются.

https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3

Синтаксис

Ссылка JSON - это объект JSON, который содержит член с именем
"$ ref", который имеет строковое значение JSON.Пример:

{"$ ref": "http://example.com/example.json#/foo/bar"}

Если значение JSON не имеет этих характеристик, то оно НЕ ДОЛЖНО интерпретироваться как ссылка JSON.

Строковое значение «$ ref» содержит URI [RFC3986], который идентифицирует расположение ссылки на значение JSON. Это условие ошибки
, если строковое значение не соответствует правилам синтаксиса URI.
Любые члены, кроме "$ ref" в объекте JSON Reference, ДОЛЖНЫ быть
игнорироваться.

...