注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
将 API 从 Oracle API Gateway 迁移到 Oracle Cloud Infrastructure API Gateway
简介
Oracle API Gateway 是一个广泛的内部部署平台,过去曾希望通过 API 公开旧系统,以便与 Web、移动甚至客户端 - 服务器应用集成。
在本教程中,我们将解释如何将 Oracle API Gateway 中实施的 API 迁移到更现代、更可扩展的技术、云原生标准以及可在混合环境(云或内部部署)中使用的 API。建议加快向 Oracle Cloud Infrastructure API Gateway(OCI API Gateway) 的迁移。
OCI API 网关服务允许您在网络上发布具有可访问专用端点的 API,如果您希望这些 API 接受互联网流量,可以使用公共 IP 地址公开这些 API。端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。
使用 OCI API 网关服务,您可以在区域子网上创建一个或多个 API 网关,以处理 API 客户端流量并将其路由到后端服务。可以使用单个 API 网关将多个后端服务(例如 OCI 负载平衡器、OCI 计算实例和 OCI 函数)链接到单个合并 API 端点。您可以访问 OCI API 网关服务,以使用 OCI 控制台和 REST API 定义 API 网关和 API 部署。
OCI API 网关服务与 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 集成,可利用原生 OCI 身份功能轻松进行身份验证。
此教程允许您准备对象以迁移到 OCI API 网关,并应与其他教程结合使用:实施自动化以将 OpenAPI 规范部署到 OCI API 网关。
注:
这些构件将:
从 Oracle API Gateway XML 导出文件自动创建 Swagger 规范。
允许 OCI API 网关自动从生成的 Swagger 规范导入。
了解需要在 Oracle Integration 上实施哪些流程和编排并与 OCI API Gateway 集成。
这些对象不会按原样完成从 Oracle API Gateway 到 OCI API Gateway 的迁移。您需要实施一些集成来编排步骤。有时,分析 API 的上下文会使您的应用采用现代方法和更云原生环境。
从 Oracle API Gateway 迁移到 OCI API Gateway 的策略
此策略不允许直接迁移到 OCI API 网关,因为它们是略有不同的技术。虽然 Oracle API Gateway 具有在路径及其策略之间创建映射的机制,可生成用于授权/验证的复杂处理规则、HEADER、具有业务规则和 API 的其他复杂性的调用编排;但 OCI API 网关仅用作 API 网关,允许对 HEADER 进行某些处理,建立一些超时和限制原则,但不具有重大复杂性。该工具旨在简化并界定其功能,正因为它是一系列服务的一部分,补充了被遗漏的其他功能。
目标
-
将 API 从 Oracle API Gateway 迁移到 OCI API Gateway。
-
划分 OCI API 网关 API 路由以及 Oracle Integration 的复杂性和编排规则。
任务 1:导出 Oracle API Gateway API
Oracle API Gateway 可以导出 XML 文件中的所有定义。我们将使用此构件来加速迁移过程。有关如何在 Oracle API Gateway 中导出 API 定义的详细信息,请参阅导出 API 网关配置。
您将获得一个包含所有 API 定义的 XML 文件。
任务 2:将 Oracle API Gateway XML 转换为 Swagger 规范
我们将使用 Oracle API Gateway XML 文件将其转换为 YAML Swagger 文件。
-
将变量文件名更改为导出的 Oracle API Gateway XML 文件并运行以下 Python 文件:generate_swagger.py 。
您将收到扩展名为 YAML 的文件。每个文件都是 Oracle API Gateway 中定义的 API 的 Swagger 定义。
Swagger 定义中对某些行进行了注释。这些行表示每个 API 上的 Oracle API Gateway 编排。这将有助于在 Oracle Integration 中规划和构建编排。
-
更改 map_details.py Python 文件以包括 Oracle API Gateway XML 定义文件和输出映射定义的文件名。
运行此 Python 代码后,您将获得 Swagger 中提到的每个业务流程步骤的更详细定义。
任务 3:将 Swagger 部署到 OCI API 网关
通过 Swagger 文件,我们可以通过自动化流程导入 OCI API 网关。通过此项目,Python 代码生成的所有 YAML 文件都可以部署在 OCI API 网关中。有关详细信息,请参阅实施自动化以将 OpenAPI 规范部署到 OCI API 网关。
此项目将导入此处生成的 Swagger 规范,并将部署要使用的 API。您需要在此文档中手动调整后端。
任务 4:在 Oracle Integration 中实施编排
在此任务中,我们需要按案例分析案例并实施编排、业务规则和验证。
首先,我们必须分析 Oracle API Gateway 中 API 的每个步骤。某些步骤是业务规则和编排,这些步骤应是 Oracle Integration 中的实施的一部分。此实施可以在 OCI API Gateway 中公开,从而遵循在 Oracle API Gateway 中执行的相同流程。
但是,有几个步骤不需要在 Oracle Integration 中实施,其中一些步骤:
- 验证和授权。
- 头部治疗,QUERY 参数和身体。
- 路由路径。
可以且应当在 OCI API 网关层中实施验证和授权流程。通过 JWT、OAuth2 等实现此目的的方法有多种;除了允许定制外,请参见 Passing Tokens to Authorizer Functions to Add Authentication and Authorization to API Deployments 。
HEADER(以及 QUERY 参数和 BODY)处理可以在 OCI API 网关本身中完成。可以在 REQUEST 和 RESPONSE 中完成处理。
日志也可以在 OCI API Gateway 中处理,但记录整个电路始终是件好事,也就是说,如果 Oracle Integration 中存在实施,请尝试在此处实施日志。
相关链接
确认
- 作者 — Cristiano Hoshikawa(Oracle LAD A-Team 解决方案工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Migrate APIs from Oracle API Gateway to Oracle Cloud Infrastructure API Gateway
G27161-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.