【发布时间】:2019-03-05 02:36:55
【问题描述】:
我正在使用 JSON 模式进行数据建模。我定义了一个基本的Document 模式,稍后我用它来定义模型模式(例如Product、Category、User 等)。
我这样做是因为我希望所有模型都继承某些结构/规则。例如,每个模型实例都应该具有某些公共属性(例如,id、createdAt、updatedAt)。在 OOP 术语中:Product extends Document,因此它继承了它的实例属性。在模式术语中(我认为)Document 是用于创建模型模式的元模式。
我已将 Document 架构定义如下:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"id": "http://example.com/schemas/document.json#",
"title": "Document",
"type": "object",
"additionalProperties": false,
"required": ["type", "name", "fields"],
"properties": {
"type": {
"constant": "document"
},
"name": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"readOnly": {
"type": "boolean"
},
"properties": {
// common properties
// model-specific properties
}
}
}
- 如何指定文档元模式“扩展”基本 JSON 模式 (draft-07),这样我就不必定义草稿的所有属性 (
$schema,id,等)? - 如何指定每个模型架构的
properties包含一些公共属性(id、createdAt、...),而不必在每个模型架构定义中定义它们?
【问题讨论】:
标签: json schema jsonschema