邮递员:更具描述性的 tv4 验证错误消息

Posted

技术标签:

【中文标题】邮递员:更具描述性的 tv4 验证错误消息【英文标题】:Postman: More descriptive tv4 validation error message 【发布时间】:2017-12-27 10:37:43 【问题描述】:

我正在使用postman 来验证从 api 返回的 json 数据的架构。

我有一个通过基本 http 验证运行的测试,然后以:

if (tv4.error)
    console.log("Validation failed: ", tv4.error);

我得到的错误很难理解。

验证失败:12:22:41.316 对象: 消息:“无效类型: 数字(预期字符串)" 名称:“验证错误” 类型:“错误”

但我需要知道验证失败的字段。我怎样才能得到这些信息? npm page for tv4 建议错误消息应该更具描述性。

【问题讨论】:

如果您能看到任何相关内容,请尝试打印整个 tv4 对象 不,tv4 本身并没有什么真正有用的东西。 【参考方案1】:

根据tv4的文档,可以使用console.log(tv4.error.dataPath)打印错误位置的路径,不知道为什么控制台没有记录这个属性。

文档是here。 文档中的相关部分是:

如果验证返回 false,那么验证失败的原因可以在 tv4.error 中找到。

错误对象看起来像:


    "code": 0,
    "message": "Invalid type: string",
    "dataPath": "/intKey",
    "schemaPath": "/properties/intKey/type"

【讨论】:

控制台没有通过仅记录 tv4 结果来记录任何 dataPath:var res = tv4.validateResult(data, schema); console.log("res",res);。我必须添加 .error.dataPath 才能真正看到内容console.log("path",res.error.dataPath);

以上是关于邮递员:更具描述性的 tv4 验证错误消息的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 tv4 验证完整的 JSON 架构

Twilio 发送消息 API 错误 21603

如何从 API 请求中检索错误消息 [重复]

颤振错误使用jwt令牌授权

为啥我在使用 Spring Boot Application 的邮递员中没有收到错误消息

在邮递员处收到奇怪的无效令牌错误消息