我正在使用具有向后兼容性选项的Confluent Avro Schema Registry。我上传了这个架构,它是数组([]括号)内的记录。该记录仅包含一个字符串字段。
curl -X POST -i -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "[{\"type\": \"record\", \"name\": \"TestRecord\", \"namespace\": \"com.company\", \"fields\": [{\"name\": \"testname\", \"type\": \"string\"}]}]"}' http://localhost:8081/subjects/test99-value/versions
一切顺利,我收到了成功回复(200)。
现在,我要进行完整性检查,因此我删除了字符串字段,并添加了一个整数字段。绝对不应该兼容,无论向前还是向后。
curl -X POST -i -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "[{\"type\": \"record\", \"name\": \"TestRecord\", \"namespace\": \"com.company\", \"fields\": [{\"name\": \"testname2\", \"type\": \"int\"}]}]"}' http://localhost:8081/subjects/test99-value/versions
问题是,即使这可能不正确,它也会返回成功。我在这里错过了一些非常基本的东西吗?
如果我使用不在数组内的记录来执行此操作,则会从架构注册表中得到预期的错误。