我会变得扁平化:JSON Schema的文档很糟糕。如果有人可以引导我找到另外显示的链接,我很乐意看一看并可能改变我的观点。
我花了3个多小时尝试获取以下非常简单的请求/响应的JSON Schema:
当某人点击/api/v1/payers?term=uni&max_results=6
后,他们得到的结果是:
[
{
"label" : "United",
"value" : "161a016e-8d06-49b9-9ddb-6bdbde248bcc"
},
{
"label" : "United Healthcare",
"value" : "1610426e-8de6-49b9-9ddb-6bfawf8bccew"
}
]
我有目录docs/schema/schemata
。 payer.json
中是否有schemata
详细说明了一位付款人?即:
{
"label" : "United",
"value" : "161a016e-8d06-49b9-9ddb-6bdbde248bcc"
}
然后我在哪里定义数组?那会在schema.json
文件夹中的schema
吗?或者......我应该在payers.json
中有一个schemata
。我还使用了prmd
gem。
我在网上看到的任何内容都没有让我得到答案。
答案 0 :(得分:1)
要指定项目列表,您的架构应该说:
{
"type": "array",
"items": {... item schema ...}
}
您可以将项目架构放在“items”属性中:
{
"type": "array",
"items": {
"type": "object",
"properties": {...},
"required": ["label", "value"]
}
}
或者您可以将其存储在其他位置并使用$ref
{
"type": "array",
"items": {"$ref": "#/definitions/payer"},
"definitions": {
"payer": {
"type": "object",
...
}
}
}
您还可以引用其他模式,以便将付款方模式存储在单独的目录中:
// payer-array.json
{
"type": "array",
"items": {"$ref": "/schemas/payers.json"
}
// payers.json
{
"type": "object",
...
}
因此,简而言之:对模式的存储位置没有限制等等。重要的是,如果您使用$ref
,它会正确解析为相对URL。