【问题标题】:Trying to use external reference in Postman with tv4尝试在带有 tv4 的 Postman 中使用外部参考
【发布时间】:2016-11-18 11:44:47
【问题描述】:

我正在尝试在 Postman 中使用外部引用并使用 tv4 进行验证。 这是我的代码:

  var schema = tv4.getSchema('https://schema.getpostman.com/json/collection/v1/');
  console.log(tv4.validate(responseBody, schema);

经过测试,我得到了

'TypeError 无法读取属性'$ref' of undefined'

.

这是否意味着我的架构在某种程度上无效?

【问题讨论】:

  • 我得到同样的错误。我知道我可以通过 HTTP Get 请求获取我的模式。另外,当我把它放在 JSON.Schema 验证器中时,它说没关系。所以不确定它是如何失败的。

标签: validation reference external postman tv4


【解决方案1】:

我知道已经很晚了,但这可以帮助其他人

tv4.getSchema(name) 用于检索已加载的模式。 tv4.addSchema(name, schema) 用于将 name 的新模式附加到 schema

那么,你应该怎么做?

阅读this article 我了解到您不能在使用 Postman 的测试中发出两个请求。相反,您应该将其值存储在环境或全局变量中,并且不要使用 tv4 的函数,因为那些(我猜)旨在用于您可以使用 http 模块实际下载架构的环境中。

最后,你的例子应该是这样的

var schema = JSON.parse(postman.getEnvironmentVariable('myEnvVarName'));
let valid = tv4.validate(pm.response.json(), schema, false, true);

【讨论】:

    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2021-03-11
    相关资源
    最近更新 更多