使用flask式的微框架,我很难构建一个RequestParser可以验证嵌套资源的。假设期望的JSON资源格式为:
{
'a_list': [
{
'obj1': 1,
'obj2': 2,
'obj3': 3
},
{
'obj1': 1,
'obj2': 2,
'obj3': 3
}
]
}
中的每个项目都a_list
对应一个对象:
class MyObject(object):
def __init__(self, obj1, obj2, obj3)
self.obj1 = obj1
self.obj2 = obj2
self.obj3 = obj3
…然后使用如下形式创建一个RequestParser
:
from flask.ext.restful import reqparse
parser = reqparse.RequestParser()
parser.add_argument('a_list', type=MyObject, action='append')
…但是你将如何验证其中MyObject每个字典的嵌套s a_list
?或者,这是错误的方法吗?
与此对应的API MyObject本质上将每个对象视为对象文字,并且可能有一个或多个传递给服务;因此,在这种情况下,拼合资源格式将不起作用。
通过RequestParser
为嵌套对象创建实例,我获得了成功。首先按照通常的方式解析根对象,然后使用结果将其馈送到嵌套对象的解析器中。
诀窍是location
该参数的add_argument
方法和req
对参数的parse_args
方法。它们使你可以操纵RequestParser
外观。
这是一个例子:
root_parser = reqparse.RequestParser()
root_parser.add_argument('id', type=int)
root_parser.add_argument('name', type=str)
root_parser.add_argument('nested_one', type=dict)
root_parser.add_argument('nested_two', type=dict)
root_args = root_parser.parse_args()
nested_one_parser = reqparse.RequestParser()
nested_one_parser.add_argument('id', type=int, location=('nested_one',))
nested_one_args = nested_one_parser.parse_args(req=root_args)
nested_two_parser = reqparse.RequestParser()
nested_two_parser.add_argument('id', type=int, location=('nested_two',))
nested_two_args = nested_two_parser.parse_args(req=root_args)
问题内容: 具有角形的这种普通(名称属性由服务器要求)形式,无法弄清楚如何使验证有效。我应该在ng-show =“ TODO”中添加什么 http://jsfiddle.net/Xk3VB/7/ ps:这只是一种形式,更复杂 谢谢 问题答案: AngularJS依靠输入名称来暴露验证错误。 不幸的是,到目前为止,不可能(不使用自定义指令)动态生成输入的名称。确实,检查输入文档,我们可以看到name
我正在对嵌套的Json使用Avro模式使用Apache Nifi验证记录。我对JSON中的字段有特殊问题。 架构: Json数据: 无效消息: 此FlowFile中的记录无效,原因如下:;以下1个字段的值类型与架构不匹配:[/test_attributes/nested_field] 我不明白这个信息。我想象Json是有效的,因此处理器不应该使处理器失效。我错过了什么? 编辑:*删除了示例JSON
我想把验证放在角度6中。它应该包含字母数字字符。字母或数字,仅3到9位。如果是数字,则应以1开头。 任何人都可以帮助我进行这些验证吗?
但是,我必须验证manager和operator的id是否有效,也就是说,我将验证user表中是否有匹配的id。 所以我想知道如何实现这种验证? 更新1:使用验证器
在使用空手道框架进行API测试时,我在验证嵌套JSON响应时遇到了一些问题。 JSON响应: null def feed_cycle={item_type:'#string',title:'#string'} def feed_college_dept_branch={branch:'#string'} def feed_college={item_type:'#string',dept:'[]f
下面是使用的json文件(tasks.json) 错误:com.intuit.karate.exception.KarateException:javascript评估失败:字符串,引用错误:第1行中未定义“字符串” 我尝试了多种方法,如:obj1:“#(^schema)”,obj1:“#对象schema” 但无法解决问题。