1.2. Apicurio Registry 中的模式和 API 工件和组
存储在 Apicurio Registry (如事件架构和 API 设计)中的项目称为 registry 工件。以下显示了简单共享价格应用程序的 JSON 格式的 Apache Avro schema 构件示例:
当架构或 API 设计作为 registry 中的工件添加时,客户端应用可以使用该架构或 API 设计验证客户端消息在运行时是否符合正确的数据结构。
Apicurio Registry 为标准事件 schema 和 API 规格支持广泛的消息有效负载格式。例如,支持的格式包括 Apache Avro、Google Protobuf、GraphQL、AsyncAPI、OpenAPI 等。如需了解更多详细信息,请参阅 第 9 章 Apicurio Registry artifact 引用。
模式和 API 组
工件组 是可选的 schema 或 API 工件集合。每个组包含一组逻辑相关的模式或 API 设计,通常由单个实体管理,属于特定应用程序或组织。
您可以在添加 schema 和 API 设计时创建可选的工件组,以将其组织到 Apicurio Registry 中。例如,您可以创建组来匹配您的 应用程序环境,或您的 开发和生产 销售 和工程 组织。
模式和 API 组可以包含多个工件类型。例如,您可以有 Protobuf、Avro、JSON Schema、OpenAPI 和 AsyncAPI 架构以及 API 工件在同一组中。
您可以使用 Apicurio Registry Web 控制台、核心 REST API、Maven 插件或 Java 客户端应用程序创建架构和 API 工件和可选组。以下简单示例显示了使用 REST API:
curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
-H "X-Registry-ArtifactId: share-price" \
--data '{"type":"record","name":"price","namespace":"com.example", \
"fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \
https://my-registry.example.com/apis/registry/v2/groups/my-group/artifacts
$ curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
-H "X-Registry-ArtifactId: share-price" \
--data '{"type":"record","name":"price","namespace":"com.example", \
"fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \
https://my-registry.example.com/apis/registry/v2/groups/my-group/artifacts
本例在名为 my-group 的工件组中添加了一个 Avro 模式,其工件 ID 为 share-price。
在使用 Apicurio Registry Web 控制台时,指定组是可选的,其中会自动创建默认组。当使用 v2 REST API 或 Maven 插件时,如果您不想创建唯一的组,您可以在 API 路径中指定 default 组。