avro schema 有效性和兼容性的本地验证

Mil*_*nov 9 gradle avro

我们用于avro对流经消息代理的消息进行(反)序列化。为了存储 avro 文件,使用了模式注册表 ( apicurio )。这提供了两个好处 - 模式验证和兼容性验证。但是,我想知道是否有一种方法可以绕过模式注册表并使用脚本/插件在本地实现相同的目的。验证 avro 文件在语法/语义上是否有效应该是可能的。这同样适用于兼容性验证,因为检查新的模式版本是否与其他模式(以前​​的版本)列表向后/向前兼容在本地听起来也是可行的。

有图书馆可以做到这一点吗?理想情况下是 gradle 插件,但 java/python 库也可以,因为它可以轻松地从 gradle 任务调用。

sol*_*l25 1

我找不到一个插件可以满足您的要求。插件似乎旨在从架构文件生成类(即https://github.com/davidmc24/gradle-avro-plugin)。在不了解为什么要这样做的情况下,我认为您可以使用这种简单的方法(如何从 Gradle 调用静态 Java 方法)将自定义代码挂接到 Gradle 中并检查架构有效性和兼容性。

请参阅以下 Avro Java API:

检查这个特定的类也有助于针对模式执行验证: