我正试图找到获取资源的最佳方法,以某种方式指示应该用来验证它的模式。你知道吗
我需要这个,因为可能有一天我需要返回一个充满不同资源的数组。在这种情况下,我需要数组中的每个资源告诉我应该用什么模式来验证它。你知道吗
最好的方法是什么?你知道吗
我的想法是使用嵌套的JSONSchema,其中外部对象具有资源的名称(例如car):
{
'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模式中处理这样的事情的方法是使用
anyOf
约束。你知道吗这样,客户机就不需要告诉您要使用什么模式,而是告诉客户机允许使用哪些模式。只要数组中的每个项都匹配其中一个可能的选项,验证就会成功。你知道吗
如果需要更具体地描述数组中的项,可以重新构造模式以隔离类型。你知道吗
相关问题 更多 >
编程相关推荐