注意:

将 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 迁移到 OCI API Gateway 的策略

此策略不允许直接迁移到 OCI API 网关,因为它们是略有不同的技术。虽然 Oracle API Gateway 具有在路径及其策略之间创建映射的机制,可生成用于授权/验证的复杂处理规则、HEADER、具有业务规则和 API 的其他复杂性的调用编排;但 OCI API 网关仅用作 API 网关,允许对 HEADER 进行某些处理,建立一些超时和限制原则,但不具有重大复杂性。该工具旨在简化并界定其功能,正因为它是一系列服务的一部分,补充了被遗漏的其他功能。

目标

任务 1:导出 Oracle API Gateway API

Oracle API Gateway 可以导出 XML 文件中的所有定义。我们将使用此构件来加速迁移过程。有关如何在 Oracle API Gateway 中导出 API 定义的详细信息,请参阅导出 API 网关配置

您将获得一个包含所有 API 定义的 XML 文件。

img_1.png

img.png

img_2.png

任务 2:将 Oracle API Gateway XML 转换为 Swagger 规范

我们将使用 Oracle API Gateway XML 文件将其转换为 YAML Swagger 文件。

  1. 将变量文件名更改为导出的 Oracle API Gateway XML 文件并运行以下 Python 文件:generate_swagger.py

    img_3.png

    img_4.png

    img_5.png

    您将收到扩展名为 YAML 的文件。每个文件都是 Oracle API Gateway 中定义的 API 的 Swagger 定义。

    Swagger 定义中对某些行进行了注释。这些行表示每个 API 上的 Oracle API Gateway 编排。这将有助于在 Oracle Integration 中规划和构建编排。

  2. 更改 map_details.py Python 文件以包括 Oracle API Gateway XML 定义文件和输出映射定义的文件名。

    img_6.png

    运行此 Python 代码后,您将获得 Swagger 中提到的每个业务流程步骤的更详细定义。

    img_7.png

任务 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 中实施,其中一些步骤:

可以且应当在 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 中存在实施,请尝试在此处实施日志。

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心