Реестр Confluent Rest Proxy Schem не выдает ошибку при отправке отсутствующего ключа свойства - PullRequest
0 голосов
/ 04 марта 2019

Я регистрирую Схему в реестре Схемы следующим образом:

{ Prop1:val1,
prop2:val2,
prop3:val3}

все вышеприведенные поля являются необязательными

Когда я отправляю данные с помощью Rest Proxy, который выглядит следующим образом:

{ "":val1, Prop2:val2, Prop3:val3 }

Я ожидаю, что реестр схемы выдаст ошибку.но этого не происходит.данные поступают в разъем приемника, и первая пара ключ / значение игнорируется.

Это ожидаемое поведение?Как вызвать ошибку, если свойства отсутствуют (свойство является необязательным, но когда мы отправляем пустое свойство, оно должно выдать ошибку).

1 Ответ

0 голосов
/ 20 марта 2019

Похоже, что это разрешение схемы в Avro.

, если запись автора содержит поле с именем, отсутствующим в записи читателя, значение автора для этого поля игнорируется.

от: https://avro.apache.org/docs/1.8.1/spec.html#Schema+Resolution

в основном в моем репо схемы в слияниях - я повторно зарегистрировал схему, чтобы получить 3 свойства - все необязательно.

{
propA:val1,
propB:val2,
propC:val3
}

, если я отправлюпакет данных с дополнительными свойствами или свойствами, которые не используются в зарегистрированной схеме, они просто игнорируются.

{
"":val1, //<- considered as new property and ignored
propB:val2,
propC:val3
}
...