我在Mule中使用带有 RAML 0.8 的APIkit和JSON模式,如下所示(示例):
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"cart": {
"title": "",
"description": "",
"type": "object",
"properties": {
"internalNumber": {
"type": "integer"
}
},
"required": [
"internalNumber"
]
}
},
"required": [
"cart"
]
}
在Mule Flow中,我捕获异常并显示以下结果:
#[exception.cause.message]
当发生验证错误时,我想获取验证失败的字段名称。相反,这就是我得到的:
{
"cart": {
"internalNumber": "I must be an integer"
}
}
"instance type (string) does not match any allowed primitive type (allowed: ["integer"])"
{
"field": "cart.internalNumber",
"error": "instance type (string) does not match any allowed primitive type (allowed: ["integer"])"
}
我想知道的是,如果有一种方法可以获得验证错误发生的字段名称。
关于Mule Documentation,我可以得到整个json字符串但不是失败字段的名称...
我希望有人能给我一个更好的解决方案。
谢谢!
答案 0 :(得分:0)
在您的JSON架构中,添加" required":" true"属性,使字段成为必填字段。
您还可以通过引用更新的架构,在您的mule流中使用JSON模式验证器。
任何一种情况都应该通过你遗漏错误字段。
使用下面的表达式来获取预期的错误消息
{
"errorMessage": "#[exception].toString().replace("\"","\\\"")"
}
答案 1 :(得分:-3)
不确定您是希望将其作为输出还是寻找验证输入和架构的方法。 我可以尝试建议“我想知道的是,是否有办法获得验证错误发生的字段名称。”;在定义定义之前,通过在线验证器更好地验证您的JSON和输入数据。与使用http://www.jsonschemavalidator.net/一样,它可以帮助您处理错误和字段。希望这可能有所帮助!