gpt4 book ai didi

python - JSONSchema 暗示其架构的资源

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:22 24 4
gpt4 key购买 nike

我正在尝试找到获取资源的最佳方法,以某种方式指示应该用于验证它的架构。

我需要这个,因为有时我可能需要返回一个充满不同资源的数组。在这种情况下,我需要数组中的每个资源来告诉我应该使用什么模式来验证它。

最好的方法是什么?

我的想法是使用嵌套的 JSONSchema,其中外部对象具有资源的名称(例如汽车):

{
'type': 'object',
'properties': {
'car': {
{
'type': 'object',
'title': 'car',
'properties': OrderedDict([('id', {
'type': 'integer'
})]),
'required': ['id']
}
},
'required': [
'car'
]
}

然后我可以在资源中清楚地看到应该使用哪个模式进行验证:

{
'car': {
'id': 1,
}
}

然后,在我需要返回一组不同资源的情况下,可以轻松地正确识别和验证每个资源:

{
'items': [
{
'car': {
'id': 1,
}
},
{
'helicopter': {
'id': 1,
}
},
]
}

最佳答案

在 JSON Schema 中处理此类问题的方法是使用 anyOf 约束。

{
"type": "array",
"items": {
"anyOf": [
{ "$ref": "car.json" },
{ "$ref": "helicopter.json" }
]
}
}

这样,客户端不需要告诉您要使用什么模式,您只需告诉客户端允许使用哪些模式。只要数组中的每个项目都匹配可能的选项之一,验证就会成功。

如果您需要更具体地了解数组中的项目,可以重构架构以隔离类型。

关于python - JSONSchema 暗示其架构的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com