如何通过networknt schema validator获取$ref已解析的JSON Schema?
关于networknt schema validator展开$ref引用的解决方案
networknt schema validator 本身就内置了 $ref 解析与 Schema 展开的原生能力,无需自行开发解析替换逻辑,具体使用方式如下:
- 第一步通过
JsonSchemaFactory加载所有公共Schema与业务相关的Schema,确保工厂实例可以识别所有本地 $ref 的资源路径 - 调用
getSchema方法获取目标Schema的实例,实例初始化的过程中已经自动完成了所有 $ref 的解析与关联定义缓存 - 直接调用Schema实例的
toJson()方法即可导出完整的展开后Schema,该方法默认会将所有内部解析完成的 $ref 替换为实际定义内容,不会保留原始引用标记
特殊场景说明:如果你的Schema中使用了外部资源的$ref,需要提前在
JsonSchemaFactory中配置对应URI的资源解析器,确保所有引用资源都能被正常加载,避免展开时出现引用缺失的报错。
如果你的所有Schema都存储在本地类路径下,只需要在初始化JsonSchemaFactory时指定类路径资源前缀即可,不需要额外配置就能正常完成所有本地$ref的解析与展开。
内容的提问来源于stack exchange,提问作者palwe-prafulla
相关产品推荐
相关产品推荐

