Должна ли JSON-схема требовать, чтобы документы объявляли `$schema`?
JSON-схема говорит, что документ JSON может объявить схему, которой документ соответствует, используя $schema
собственность Пример:
{
"$schema": "http://example.com/example_fancy_schema#",
"example_fancy_property": "cute fluffy kittens"
}
где схема выглядит так:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Example Fancy Schema",
"description": "The schema that describes the example format.",
"type": "object",
"properties": {
"example_fancy_property": {
"type": "string",
"enum": ["cute fluffy kittens"]
}
},
"additionalProperties": false,
"required": [ "example_fancy_property" ]
}
Означает ли это, что нужно добавить свойство для этого в фактическую схему, например:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Example Fancy Schema",
"description": "The schema that describes the example format.",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"enum": ["http://example.com/example_fancy_schema#"]
},
"example_fancy_property": {
"type": "string",
"enum": ["cute fluffy kittens"]
}
},
"additionalProperties": false,
"required": [ "$schema", "example_fancy_property" ]
}
Ни один из примеров на веб-сайте JSON-схемы, кажется, не объявляет об этом, поэтому я подозреваю, что никто не должен объявлять это. Но мне все равно любопытно:)
1 ответ
Решение
$schema
Ключевое слово рекомендуется для использования в схемах JSON, чтобы обозначить версию используемого стандарта схемы.
Однако это не имеет особого значения в данных. По HTTP есть рекомендуемые способы связать данные со схемой, но $schema
собственность не одна из них.