AVRO 模式的 JSON 看起来有效但 returns 从 Kafka 模式注册表中无效
AVRO schema's JSON looks valid but returns invalid from Kafka Schema Registry
我正在尝试将 AVRO 架构注册到架构注册表。该模式包含一条记录和一些字段。我 post 模式作为 JSON 到模式注册表 REST API 虽然 JSON 看起来不错服务器 returns curl : {"error_code":42201,"message":"Input schema is an invalid Avro schema"}
.
有人可以看看吗?
Powershell 用于生成架构 JSON。
$type = @{namespace="customer-actions"; name="customer-enrollment";
type="record";
fields=@{name="id"; type="int"},
@{name="name"; type="string"}}
$typeJ = ConvertTo-Json $type -Depth 3 -Compress
$schema = @{schema = "$typeJ" }
$schemaJ = ConvertTo-Json $schema -Compress
这会产生以下...
{"schema":"{\"type\":\"record\",\"namespace\":\"customer-actions\",\"name\":\"customer-enrollment\",\"fields\":[{\"name\":\"id\",\"type\":\"int\
"},{\"name\":\"name\",\"type\":\"string\"}]}"}
看起来很糟糕;那些转义引号都是必需的。相同的转义字符与更简单的模式一起使用没有问题。
提前致谢。
[编辑]
调用架构注册表 API 如果有帮助
curl -Uri http://server:8081/subjects/customer-enrollment/versions `
-Method Post `
-ContentType "application/vnd.schemaregistry.v1+json" `
-Body $schemaJ
问题是名称 customer-enrollment 中的 - 字符
$type = @{namespace="customer-actions"; name="enrollment";
type="record";
fields=@{name="id"; type="int"},
@{name="name"; type="string"}}
$typeJ = ConvertTo-Json $type -Depth 3 -Compress
$schema = @{schema = "$typeJ" }
$schemaJ = ConvertTo-Json $schema -Compress
在 public 论坛中发布问题后,您会立即找到答案吗?
我正在尝试将 AVRO 架构注册到架构注册表。该模式包含一条记录和一些字段。我 post 模式作为 JSON 到模式注册表 REST API 虽然 JSON 看起来不错服务器 returns curl : {"error_code":42201,"message":"Input schema is an invalid Avro schema"}
.
有人可以看看吗?
Powershell 用于生成架构 JSON。
$type = @{namespace="customer-actions"; name="customer-enrollment";
type="record";
fields=@{name="id"; type="int"},
@{name="name"; type="string"}}
$typeJ = ConvertTo-Json $type -Depth 3 -Compress
$schema = @{schema = "$typeJ" }
$schemaJ = ConvertTo-Json $schema -Compress
这会产生以下...
{"schema":"{\"type\":\"record\",\"namespace\":\"customer-actions\",\"name\":\"customer-enrollment\",\"fields\":[{\"name\":\"id\",\"type\":\"int\
"},{\"name\":\"name\",\"type\":\"string\"}]}"}
看起来很糟糕;那些转义引号都是必需的。相同的转义字符与更简单的模式一起使用没有问题。
提前致谢。
[编辑] 调用架构注册表 API 如果有帮助
curl -Uri http://server:8081/subjects/customer-enrollment/versions `
-Method Post `
-ContentType "application/vnd.schemaregistry.v1+json" `
-Body $schemaJ
问题是名称 customer-enrollment 中的 - 字符
$type = @{namespace="customer-actions"; name="enrollment";
type="record";
fields=@{name="id"; type="int"},
@{name="name"; type="string"}}
$typeJ = ConvertTo-Json $type -Depth 3 -Compress
$schema = @{schema = "$typeJ" }
$schemaJ = ConvertTo-Json $schema -Compress
在 public 论坛中发布问题后,您会立即找到答案吗?