远程枚举的 JSON 架构语法

xav*_*ier 5 enums json jsonschema

我想知道使用来自 Web 服务的远程数据描述枚举的正确方法是什么

{
  "type": "object",
  "properties": {
    "person": {
     "title": "Gender",
     "type": "string",
     "enum": REMOTE DATA
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你帮助泽维尔

jru*_*ren 4

JSON-schema 只允许您通过 JSON 引用通过关键字$ref在本地或远程引用其他架构。如何解析这些引用或多或少取决于 JSON 模式库,并且它不包含针对 Web 服务解决问题的标准机制。

enum如果您可以在公共位置发布数据,那么您可以将其引用为:

"$ref": "http://example.com/enumdata#"
Run Code Online (Sandbox Code Playgroud)

或者,如果您想在同一文档中解决它:

"$ref": "#/definitions/enumdata" 
Run Code Online (Sandbox Code Playgroud)

另一种实用的方法是通过预处理任务来构建 JSON 模式。这样您就可以在使用之前从远程源填充枚举值。