JSON 架构验证程序'id'字段



我正在使用JSON模式来验证文件。这有点类似于 XML XSD。

我有几个关于id字段的问题。

  • 没有网络连接,架构仍然有效吗?
  • id
  • 中的 URL 应该可以从 Web 浏览器访问 ? 即如果 'id' = "https://example.com/question",这是否意味着我们应该能够通过转到 https://example.com/question 从浏览器访问模式?

我对这个问题有点迷茫。我知道最佳做法是将id属性作为每个模式的唯一标识符,并且在创建具有相互引用的不同架构的复杂架构时,这最有用。

但我不确定我们是否需要为 id 字段分配一个 URL。而且我也对架构使用此 URL 的含义感到迷茫。

非常感谢您的帮助

id

(自draft-06年以来$id(的主要目的是组织$ref解析的范围。

$id不必是现有的 HTTP 资源。识别的模式甚至可以在另一个模式中定义(规范测试套件中的示例(。

JSON 架构规范要求验证程序应该能够根据当前架构中定义的$id解析引用。远程引用也应该被解析,但对它应该如何发生没有任何限制。

在许多情况下,由于高延迟,验证期间的网络交互是非常不需要的。大多数实现都提供了一种通过在验证之前显式$id来预加载/定义架构资源的方法。

根据规范,根架构应该具有$id绝对URI,但是是否应该使用HTTP客户端访问它取决于您和您的验证器。

$id仅定义为URI。

http://json-schema.org/draft-07/json-schema-core.html#rfc.section.8.2

请参阅 RFC-3986 统一资源标识符 (URI(:通用语法

https://www.rfc-editor.org/rfc/rfc3986

"统一资源标识符 (URI( 是标识抽象或物理资源的紧凑字符序列。">

Daniel Messier的一篇很好的文章清楚地解释了URI的性质 - 它可以只是一个URN,但也可能是一个有效的URL

https://danielmiessler.com/study/url-uri/

相关内容

  • 没有找到相关文章

最新更新