第 4 章 使用 REST API 管理 Apicurio Registry 内容


客户端应用程序可以使用 Registry REST API 操作来管理 Apicurio Registry 中的 schema 和 API 工件,例如在生产环境中部署的 CI/CD 管道。Registry REST API 为存储在 registry 中的工件、版本、元数据和规则提供创建、读取、更新和删除操作。如需更多信息,请参阅 Apicurio Registry REST API 文档

本章论述了 Apicurio Registry 核心 REST API,并演示了如何使用它来管理 registry 中存储的架构和 API 工件:

本节演示了一个简单的基于 curl 的示例,它使用了 registry v2 核心 REST API 在 registry 中添加并检索 Apache Avro schema 工件。

前提条件

  • 必须在自己的环境中安装并运行 Apicurio Registry。

流程

  1. 使用 /groups/{group}/artifacts 操作向注册表添加工件。以下示例 curl 命令为共享价格应用程序添加简单的工件:

    $ curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
      -H "X-Registry-ArtifactId: share-price" \ 
    1
    
      --data '{"type":"record","name":"price","namespace":"com.example", \
       "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \ 
    2
    
      http://MY-REGISTRY-HOST/apis/registry/v2/groups/my-group/artifacts 
    3
    Copy to Clipboard Toggle word wrap
    1
    这个示例添加了一个 Avro schema 工件,其工件 ID 为 share-price。如果您没有指定唯一的工件 ID,Apicurio Registry 会自动生成一个作为 UUID。
    2
    MY-REGISTRY-HOST 是部署 Apicurio Registry 的主机名。例如: my-cluster-service-registry-myproject.example.com
    3
    本例在 API 路径中指定 my-group 的组 ID。如果没有指定唯一组 ID,则必须在 API 路径中指定 ./groups/default
  2. 验证响应是否包含预期的 JSON 正文,以确认添加了构件。例如:

    {"createdBy":"","createdOn":"2021-04-16T09:07:51+0000","modifiedBy":"",
    "modifiedOn":"2021-04-16T09:07:51+0000","id":"share-price","version":"1", 
    1
    
    "type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2} 
    2
    Copy to Clipboard Toggle word wrap
    1
    在添加工件时没有指定版本,因此会自动创建默认版本 1
    2
    这是添加到 registry 的第二个工件,因此全局 ID 和内容 ID 的值为 2
  3. 使用 API 路径中的工件 ID,从 registry 检索工件内容。在这个示例中,指定的 ID 是 share-price

    $ curl http://MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/share-price \
    {"type":"record","name":"price","namespace":"com.example", \
      "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat