使用 Kafka REST 代理发布 Avro 消息抛出 "Conversion of JSON to Avro failed"

Publishing Avro messages using Kafka REST Proxy throws "Conversion of JSON to Avro failed"

我正在尝试发布一条消息,其中一个字段有一个联合

{
  "name": "somefield",
  "type": [
    "null",
    {
      "type": "array",
      "items": {
        "type": "record",

somefield 填充了一个数组时,使用 Kafka REST 代理发布消息不断抛出以下错误。

{
  "error_code": 42203,
  "message": "Conversion of JSON to Avro failed: Failed to convert JSON to Avro: Expected start-union. Got START_ARRAY"
}

somefield: null 相同的架构工作正常。

Java 类 使用来自 Avro 模式的 gradle 插件构建在 Spring 引导项目中。当我使用生成的 Java 类 并发布一条消息时,使用 Spring KafkaTemplate 填充数组,消息将使用正确的模式正确发布。 (架构取自生成的 Avro 特定记录)我复制了相同的 json 值和架构并通过 REST 代理发布,它因上述错误而失败。

我在 API 调用中有这些内容类型

accept:application/vnd.kafka.v2+json, application/vnd.kafka+json, application/json
content-type:application/vnd.kafka.avro.v2+json

我在这里错过了什么?感谢任何解决问题的建议。

我测试的消息是,

{
   "somefield" : null
}

{
   "somefield" : [
      {"field1": "hello"}
    ]
}

但是,它应该被传递为,

{
   "somefield" : {
      "array": [
      {"field1": "hello"}
    ]}
}