API 控制器入门
前言 复制链接链接已复制到粘贴板!
对红帽文档提供反馈
红帽感谢您对产品文档的反馈。
要进行改进,请创建一个 Jira 问题,并描述您推荐的更改。提供尽可能多的详细信息,以帮助文档团队快速定位请求。
前提条件
- 您有一个红帽客户门户网站帐户。此帐户允许您登录到 Red Hat Jira Software 实例。如果您没有帐户,系统会提示您创建一个帐户。
流程
- 单击以下链接: 创建问题。
- 在 Summary 文本框中,输入问题的简短描述。
在 Description 文本框中,提供以下信息:
- 找到此问题的页面的 URL。
- 有关此问题的详细描述。您可以将信息保留在任何其他字段中,使其默认值。
- 在 Reporter 字段中,输入您的 Jira 用户名。
- 点 Create 将 JIRA 问题提交到文档团队。
感谢您抽出时间提供反馈。
第 1 章 什么是 API 控制器? 复制链接链接已复制到粘贴板!
API 控制器允许您管理 schema 和 API 定义的生命周期。您可以使用 Apicurio Studio 设计工件,并使用 Apicurio Registry 管理这些工件。
此发行版本是 API 控制器的一个开发者预览。
红帽不支持开发人员预览功能,且功能完整或生产就绪。不要将开发人员预览功能用于生产环境或业务关键型工作负载。开发人员预览功能在红帽产品产品中包括早期对功能的访问。客户可以使用这些功能在开发过程中测试并提供反馈。
开发人员预览功能可能没有任何文档,可以随时更改或删除,并且已获得有限的测试。红帽可能会提供在没有相关 SLA 的情况下提交对开发人员预览功能的反馈。如需更多信息,请参阅红帽开发人员预览 - 支持范围。
1.1. API 控制器与连接链接集成 复制链接链接已复制到粘贴板!
创建使用 API 控制器的 API 或模式后,您可以使用该带有连接链接的工件:
- 使用 TLSPolicy 保护应用程序
- 使用 AuthPolicy 保护应用程序
- 使用 RateLimitPolicy 保护应用程序
- 将应用程序与 DNSPolicy 连接
连接链接也可以使用 Grafana、Prometheus 和 Alertmanager 提供可观察性。
其他信息
1.2. Apicurio Studio 与 Apicurio Registry 集成 复制链接链接已复制到粘贴板!
Apicurio Studio 提供了一个 UI,您可以在设计 API 和模式时就工件进行合作。完成设计后,您可以进一步管理 Apicurio Registry 中的工件。
第 2 章 安装 API 控制器 复制链接链接已复制到粘贴板!
要安装 API 控制器,请使用 community Operator。
先决条件
-
对 OpenShift 集群的
cluster-admin访问权限。
流程
-
在 OpenShift Container Platform web 控制台中,使用
cluster-admin权限登录。 - 在左侧导航菜单中,点 Operators > OperatorHub。
-
在 Filter by keyword 文本框中,输入
Apicurio来查找 Apicurio API Controller。 - 阅读 Operator 信息,然后点 Install 显示 Operator 订阅页面。
接受以下通知的默认订阅设置:
- 安装模式 :集群中的所有命名空间(默认)
- 安装的命名空间 :选择要安装 Operator 的命名空间,如 api-controller。如果命名空间尚不存在,点此字段并选择 Create Project 来创建命名空间。
- 批准策略 :选择 Automatic 或 Manual。
- 点 Install,然后等待片刻,直到 Operator 安装并可供使用。
-
验证是否安装了 Operator。安装 Operator 后,点 Operators > Installed Operators 来验证 Apicurio API Controller 是否已安装到所选命名空间中,如
api-controller。 - 进入 OpenShift Container Platform Web 控制台中的 Developer 视图,以应用安装所需的 YAML。
使用
api-controller命名空间中的以下 YAML 创建 PostgreSQL 数据库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
api-controller命名空间中的以下 YAML 创建名为apicurio的 CR 和所需的路由:注意将
mycluster.example.com替换为集群主机名。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
导航到 api-controller- Studio-ui Route,再单击 Location URL。应该会显示 Apicurio Studio 控制台。
第 3 章 Apicurio Studio 入门 复制链接链接已复制到粘贴板!
3.1. 什么是 Apicurio Studio? 复制链接链接已复制到粘贴板!
Apicurio Studio 允许您设计架构和 API 定义。它提供了一个 Web 控制台,方便 API 所有者和开发人员管理事件模式和 API 定义的内容。
您可以使用 Apicurio Studio 从简单模板创建模式或 API 设计,使用提供的一个详细的模板,或者导入现有的设计来编辑它。随着设计的演进,它会自动保存到 Apicurio Registry 中,作为 DRAFT。当您对内容满意时,您可以将设计提升到 Apicurio Registry 中的 ENABLED。
Apicurio Studio 基于 Apicurio Studio 开源社区项目。
主要概念
要了解 Apicurio Studio 的工作原理,了解以下关键概念非常重要:
- Apicurio Studio web 控制台
开发人员创建、管理和组织其 API 和架构设计的 Web 环境。
您可以使用 Apicurio Studio web 控制台完成以下任务:
- 浏览并搜索存储在 Apicurio Studio 中的 schema 和 API 设计
- 添加新的 schema 和 API 设计及版本
- 从文件、URL 或 Apicurio Registry 实例导入内容
- 显示在当前编辑会话中所做的更改
- 草案
API 设计或架构设计。当下载到本地项目或 Apicurio Registry 中使用时,设计称为 工件。
Apicurio Studio 支持以下 API 类型:
- AsyncAPI
- OpenAPI
Apicurio Studio 支持以下模式类型:
- Apache Avro
- JSON 架构
- Google 协议缓冲器(Protobuf)
Apicurio Studio 用例
Apicurio Studio 的主要用例如下:
合同优先应用程序开发
在编写任何应用程序代码前,您可以使用 Apicurio Studio 可视化设计应用程序所需的 API 和数据模型(合同)。定义合同后,更容易创建满足合同所需的应用程序逻辑。您可以从 Apicurio Studio 中创建的设计生成基于 Quarkus 的客户端和服务器应用程序。
Apicurio Registry 的填充
所有 API 和模式设计都保存到 Apicurio Registry 中。您可以使用 Apicurio Registry 功能,例如:
- 创建用于设计更改验证的规则。
- 使用 Apicurio Registry REST API 解引用复杂的 JSON 架构。
3.2. 创建 API 草案 复制链接链接已复制到粘贴板!
使用 Apicurio Studio web 控制台创建 OpenAPI 或 AsyncAPI 定义。
先决条件
- 您已登录到 Apicurio Studio web 控制台。
流程
- 在 Apicurio Studio web 控制台中,单击 Create draft。
完成向导来为新草案提供以下详情:
指定 Draft Coordinates 并点 Next :
-
组 ID 和 Draft ID :使用默认空设置自动生成 Draft ID,并将 Draft 添加到
默认的Draft 组中。或者,您可以输入可选组 ID 或 Draft ID。 - 版本号 :可选指定版本号。
- 键入 :使用默认 Auto-Detect 设置来自动检测 Draft 类型(如果创建空的 Draft),或者从列表中选择 Draft 类型,如 OpenAPI。
-
组 ID 和 Draft ID :使用默认空设置自动生成 Draft ID,并将 Draft 添加到
指定 Draft 内容 并点 Next :
从模板 :从模板列表中选择。
-
从本地文件 :单击 Browse,然后选择一个文件,或者拖放文件。例如,
my-openapi.json或my-schema.proto。或者,您可以在文本框中输入文件内容。 -
从 URL :输入有效且可访问的 URL,然后单击 Fetch。例如:
https://petstore3.swagger.io/api/v3/openapi.json。
-
从本地文件 :单击 Browse,然后选择一个文件,或者拖放文件。例如,
指定 Draft 元数据 :
- Name :输入第一个工件版本的可选友好名称。
- 描述 :输入第一个工件版本的可选描述。
- 点 Create 创建草稿。此时会显示 Draft 详情视图。
要编辑草案,请点击 Edit draft。
点 Design 选项卡,并选择性地按照如下方式编辑草案:
- 提供版本号和描述。
- (仅限 AsyncAPI) 定义服务条款。
- 添加您的联系信息:名称、电子邮件地址和 URL。
- 选择许可证。
- (仅限 OpenAPI) 定义标签。
- 定义一个或多个服务器。
- 配置安全方案。
- (仅限 OpenAPI) 指定安全要求。
- (仅限 OpenAPI) 配置供应商扩展。
- 点 Source 选项卡,并查看草案的实时预览。当您编辑编辑器页面中的值时,Source 选项卡的内容会自动更新。
- (可选) 要查看自上次保存以来所做的更改,请点击 Actions > Show draft changes。
(可选) 在草案编辑器的左侧窗格中,您可以添加以下项目:
- (仅限 OpenAPI) 资源路径、数据类型和响应
- (仅限 AsyncAPI) Channels、数据类型、消息、操作特征和消息特征
- 点击 Save。
- 使用面包屑导航栏返回 Drafts 页面。
使用组 ID 和 Draft ID 在 Drafts 页面中列出了新的草案。您可以使用选项图标(三个垂直圆点)来查看草案详情、编辑草案内容、完成草稿、查看 Apicurio Registry 中的草案,或删除草案。
其他信息
请查看 第 3.4 节 “最终调整草案”
3.3. 创建模式草案 复制链接链接已复制到粘贴板!
使用 Apicurio Studio web 控制台创建 Apache Avro、JSON Schema 或 Google 协议缓冲器(Protobuf)事件模式。
先决条件
- 您已登录到 Apicurio Studio web 控制台。
流程
- 在 Apicurio Studio web 控制台中,单击 Create draft。
完成向导来为新草案提供以下详情:
指定 Draft Coordinates 并点 Next :
-
组 ID 和 Draft ID :使用默认空设置自动生成 Draft ID,并将 Draft 添加到
默认的Draft 组中。或者,您可以输入可选组 ID 或 Draft ID。 - 版本号 :可选指定版本号。
- 键入: 使用默认 Auto-Detect 设置来自动检测 Draft 类型(如果创建空的 Draft),或者从列表中选择 Draft 类型,如 Apache Avro。
-
组 ID 和 Draft ID :使用默认空设置自动生成 Draft ID,并将 Draft 添加到
指定 Draft 内容 并点 Next :
从模板 :从模板列表中选择。
-
从本地文件 :单击 Browse,然后选择一个文件,或者拖放文件。例如,
my-openapi.json或my-schema.proto。或者,您可以在文本框中输入文件内容。 -
从 URL :输入有效且可访问的 URL,然后单击 Fetch。例如:
https://petstore3.swagger.io/api/v3/openapi.json。
-
从本地文件 :单击 Browse,然后选择一个文件,或者拖放文件。例如,
指定 Draft 元数据 :
- Name :输入第一个工件版本的可选友好名称。
- 描述 :输入第一个工件版本的可选描述。
- 点 Create 创建草稿。此时会显示 Draft 详情视图。
要编辑草案,请点击 Edit draft。
- 点 Design 选项卡,并编辑草案。
- (可选) 要查看自上次保存以来所做的更改,请点击 Actions > Show draft changes。
- (可选) 在草案编辑器的左侧窗格中,您可以添加以下项目:
- 点击 Save。
- 使用面包屑导航栏返回 Drafts 页面。
使用组 ID 和 Draft ID 在 Drafts 页面中列出了新的草案。您可以使用选项图标(三个垂直圆点)来查看草案详情、编辑草案内容、完成草稿、查看 Apicurio Registry 中的草案,或删除草案。
其他信息
请查看 第 3.4 节 “最终调整草案”
3.4. 最终调整草案 复制链接链接已复制到粘贴板!
使用 Apicurio Studio web 控制台完成草案。此操作会将 Apicurio Registry 中的工件状态从 DRAFT 改为 ENABLED。
先决条件
- 您已登录到 Apicurio Studio web 控制台。
流程
导航到 Apicurio Studio 中的草案。例如:
- 将 Filter by 设置为 Name
- 在搜索字段中输入草案名称。
- 点 Search 图标或按返回。
您可以通过两种方式完成草案:
- 在搜索结果中,单击选项图标(三个垂直圆点),然后选择最后 草稿。
- 点搜索结果中列出的草案协调以查看草案详情页面,然后点最后的 草案 按钮。
此时会显示 Final draft? modal。
确认您要完成草案。
Dry run only 选项允许您在最终大小前验证草案。
此时会出现确认页面,其中包含工件的详情。
重要完成草案后,您无法在 Apicurio Studio 中查看或编辑该工件。您必须使用 Apicurio Registry 执行进一步编辑。
- 进入 Apicurio Registry 中的工件。在确认页面中,您可以通过从选项菜单中选择 View in Registry (三个垂直点)来导航到 Apicurio Registry 中的工件。
第 4 章 Apicurio Registry 入门 复制链接链接已复制到粘贴板!
Apicurio Registry 是一个强大的工具,用于管理和存储数据模式、API 设计或集中存储库中的任何结构化内容。它支持各种工件类型,包括 Avro、Protobuf、JSON Schema 和 OpenAPI 定义。
其他信息
4.1. 探索工件 复制链接链接已复制到粘贴板!
工件是 Apicurio Registry 的构建块。它们代表存储在 registry 中的数据结构、API 设计或架构定义,以便重复使用和协作。您可以上传、更新和检索工件、查看其版本历史记录并管理其生命周期。
4.2. 管理组 复制链接链接已复制到粘贴板!
组允许您以逻辑方式组织工件,从而更轻松地管理和检索它们。每个工件属于一个组,组可以代表域、项目或团队。分组提供隔离,同时启用对访问和使用策略的精细控制。
4.3. 管理规则 复制链接链接已复制到粘贴板!
Apicurio Registry 中的规则通过根据定义的标准验证工件来帮助强制实施一致性和质量。您可以对整个 registry 应用全局规则,或为各个组和工件配置特定的规则。
4.4. 配置设置 复制链接链接已复制到粘贴板!
Apicurio Registry 中的配置选项允许您根据特定需求定制 registry。调整操作参数、与外部系统集成或配置高级设置以提高性能和安全性。
4.5. 使用 API 复制链接链接已复制到粘贴板!
Apicurio Registry 提供了一个强大的 REST API,用于以编程方式与 registry 交互。开发人员可以自动化工件管理、将 registry 功能集成到 CI/CD 管道中,或构建自定义工具来增强架构管理。
附录 A. 使用您的红帽订阅 复制链接链接已复制到粘贴板!
红帽连接链接通过软件订阅提供。要管理您的订阅,请通过红帽客户门户网站访问您的帐户。
管理您的订阅
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
- 在菜单栏中,单击 Subscriptions 以查看和管理您的订阅。
更新于 2024-12-13