如何查找Schema Registry中引用指定Schema的所有Schema?
获取引用指定Schema的列表方法
取决于你使用的Schema管理工具,以下是几种常见场景的实现方式:
MongoDB Atlas 场景
使用Atlas的Schema API,通过cURL查询所有Schema并筛选引用address的条目:
curl --request GET \ --url 'https://cloud.mongodb.com/api/atlas/v1.0/groups/{你的集群组ID}/clusters/{集群名称}/schemas?includeDerived=true' \ --header 'Authorization: Bearer {你的API密钥}'
返回结果中,查看每个Schema的derivedFrom字段,筛选出值包含address的Schema,就是所有引用它的列表。
Confluent Schema Registry 场景
- 先获取所有Schema主题列表:
curl --request GET \ --url 'http://{Schema Registry地址}/subjects'
- 逐个查询每个主题的最新Schema详情,检查是否引用
address:
curl --request GET \ --url 'http://{Schema Registry地址}/subjects/{主题名称}/versions/latest'
在返回的Schema定义中查找$ref字段,若指向address则记录该主题,最终汇总得到引用列表。
自定义Schema存储系统
如果是自己搭建的Schema存储,需要两步实现:
- 调用API获取所有Schema的完整列表
- 遍历每个Schema的定义内容,检查是否存在对
address的引用(比如JSON Schema的$ref、Protobuf的import语句等) - 收集所有符合条件的Schema名称
内容的提问来源于stack exchange,提问作者pri05
相关产品推荐
相关产品推荐

