【发布时间】:2013-07-06 00:41:34
【问题描述】:
我正在使用 json-schema 并希望仅允许在此文件中声明的属性通过验证。例如,如果用户在他们的 json 对象中传递了一个“name”属性,那么这个模式就会失败,因为“name”没有在此处作为属性列出。
是否有一些类似于“必需”的功能只允许列出的属性通过?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Accounting Resource - Add Item",
"type": "object",
"properties": {
"itemNumber": {
"type":"string",
"minimum": 3
},
"title": {
"type":"string",
"minimum": 5
},
"description": {
"type":"string",
"minimum": 5
}
},
"required": [
"itemNumber",
"title",
"description"
]
}
【问题讨论】:
-
即使有办法,这似乎是在脚下射出未来的可扩展性。
-
未来任何时候我都会将这些属性添加到这个架构中。
-
@ipengineer - 只要 you 是进行扩展的人,它就可以工作(-ish)。这也意味着您更改了某些人可能认为是静态的资源。
-
这里没有“-ish”。如果您的 API 将来开始接受新的 props,无论您的团队规模如何,向您的架构添加新属性并不难。如果是这样,你可能做错了什么。
标签: json jsonschema