如何通过subject从Schema Registry获取指定Avro Schema?
问题原因
你调用的GET /subjects接口作用是返回注册表内存储的全量Schema主体(subject)列表,该接口不支持通过subject查询参数做单条过滤,因此无论是否传入该参数,都会返回所有Schema条目,无法拿到你指定的单个Schema内容。
正确查询方法
要按名称获取test.data对应的Avro Schema,直接调用subject对应版本的查询接口即可,获取最新版本Schema的curl命令如下:
curl --location --request GET 'http://localhost:8083/subjects/test.data/versions/latest'
返回结果中的schema字段就是你需要的Avro Schema定义内容。
其他常用相关调用说明:
- 如果需要获取指定版本的Schema,把路径中的
latest替换为对应版本号即可,例如查询版本1的接口路径为/subjects/test.data/versions/1 - 如果仅需要校验指定名称的Schema是否存在,可以调用
GET /subjects/test.data接口,存在时返回200状态码和对应subject名称,不存在时返回404状态码 - 如果你的Schema Registry开启了软删除配置,需要查询已被软删除的Schema时,可在接口末尾追加查询参数
?deleted=true,常规使用场景不需要加该参数。
内容的提问来源于stack exchange,提问作者Only-A-User
相关产品推荐
相关产品推荐

