已知限制
此页面描述了 API Connect 10.0.7.0 和更高版本的已知限制。
分析
- 某些子系统不支持 Instana AutoTrace 和 Dynatrace 注入
管理、分析、 开发人员门户和网关子系统不支持 Instana AutoTrace。 在这些子系统中使用 Instana AutoTrace 可能会导致损坏;此外, 开发人员门户子系统不支持 Dynatrace 注入,也可能导致损坏。 更多信息,请参阅 Instana AutoTrace。
注:- OpenTelemetry 支持基于 DataPower® API Gateway 的跟踪,也是推荐的方法。 更多信息,请参阅启用 OpenTelemetry 配置。
- 该问题源于 Instana 集成,与 API Connect 无关。
- Analytics 命令限制
- 仅当标志
--return_format设置为json或yaml时,以下--mode analytics命令才有效:clustermgmt:catAllocationclustermgmt:catIndicesclustermgmt:catNodesclustermgmt:catRecoveryclustermgmt:catShardsclustermgmt:catAliases
text/plain:clustermgmt:getNodesHotThreadsclustermgmt:getNodesHotThreadsById
- 使用者速率限制通知在 V10 中不可用
- 能够为应用程序配置通知,以便在 API 的使用率接近其速率限制时向 API 使用者发出警报。
API 监管
- 从规则集中进行验证将显示所有规则
- 在 监管 服务中,如果从规则集中单击 验证 ,那么所显示的规则列表将包含不属于所选规则集的规则。 要变通此方法,请手动选择要用于验证的规则。
API Manager
- 创建具有多个应用程序接口的草稿产品时,应用程序接口选择不完整
创建产品草案时,如果同时选择多个 API,则不会保存所有选定的 API。
- 如果在目录中未启用 OAuth 提供者引用的资源,那么 OAuth 提供者将失败
- 如果在目录中启用 OAuth 提供者,那么它引用的任何资源 (例如 API 用户注册表或 TLS 客户机概要文件) 都必须在同一目录中启用; 否则,虽然 OAuth 提供者可能会在运行时成功发布,但它将失败。 有关在目录中启用资源的信息,请参阅 创建和配置目录。
- 共享 TLS 客户机概要文件中的信任库和密钥库设置不会反映在 API Manager 中
- 如果在 Cloud Manager 用户界面中创建共享 TLS 客户机概要文件并分配信任库和密钥库,那么这些信任库和密钥库设置不会反映在 API Manager 用户界面中的该 TLS 客户机概要文件中,并且无法在其中进行设置。 此外,TLS 客户机概要文件列表视图针对信任库和密钥库显示值 shared 而不是正确的值。 要解决此问题,请在 API Manager 用户界面中为每个提供者组织单独创建信任库,密钥库和 TLS 客户机概要文件,然后根据需要在目录中启用 TLS 客户机概要文件。
- 如果在创建新 API 版本之前未保存 API 更改,那么 UI 行为不正确
- 如果对 API 定义进行更改,然后尝试在不首先保存更改的情况下创建新的 API 版本,那么直到完成新版本创建操作之后才会提示您保存更改。 如果单击提示中的确定,那么将创建新版本,但是原始更改会丢失;要创建新版本并保留原始更改,应单击提示中的取消,然后单击保存以保存原始更改。
- 多个用户同时编辑同一 API 可能会导致覆盖更改
- 如果一个用户保存对 OpenAPI 3.0 API 的更改,那么在 API 编辑器中打开相同 API 的另一个用户可能会覆盖其更改。
- 无法将现有用户添加到空间
- 如果尝试将现有用户添加到空间,那么无法完成此操作,因为未启用 创建 按钮。 请改为使用邀请机制。 有关详细信息,请参阅 管理空间成员资格。注: 受邀用户必须使用激活表单上的 登录 选项,而不是完成注册详细信息并使用 注册。
- 其组合件包含具有无效策略的 catch 块的已发布 API 现在将无法正确重新发布
- 先前,未验证组合件 catch 块中的策略,因此如果在 API 的 OpenAPI 源中编码了不正确的策略配置,那么在组合件 catch 块中, API 仍会成功发布。 现在,已验证组合件 catch 块中的策略,因此此类 API 将无法重新发布,首先需要更正。
Cloud Manager
- 在 Cloud Manager 中配置端点后,无法使用 APICUP 对其进行更改
不支持在 Cloud Manager 中配置端点后使用 APICUP 更改端点。 任何此类端点更改都不会传播到正在运行的部署。
- 向提供者组织添加成员可能失败
- 将成员添加到提供者组织时, Cloud Manager 用户界面还会列出当前所有者和成员。 如果选择现有成员,添加操作将失败。
Cloud Pak for Integration
- 无法在资产库中添加应用程序接口
- 如果使用 API Connect 作为 Cloud Pak for Integration 的组件,则无法从 API Connect 向资产存储库添加 API。
- 当用户保持不活动状态时,从资产库导入时出现问题
- 如果从 Cloud Pak for Integration 资产存储库导入 API 时页面上没有用户活动,那么用户可能会看到以下错误:
could not add asset, parent window missing通过重新装入 " 导入 API " 页面,然后再次打开资产存储库来解决此问题。
- 配置更新错误导致 OpenShift 和 Cloud Pak for Integration 中发生许可 Webhook 错误
- 在 OpenShift 和 Cloud Pak for Integration中,配置更新错误可能会导致
APIConnectCluster实例进入 "暂挂" 状态,并导致底层组件抛出许可 Webhook 错误。oc get apiconnectcluster -n APIC_namespace NAME READY STATUS VERSION RECONCILED VERSION AGE m1 admission webhook "vmanagementcluster.kb.io" denied the request: ManagementCluster.management.apiconnect.example.com "m1-mgmt" is invalid: [spec.databaseBackup.restartDB.accept: Invalid value: false: databaseBackup protocol has changed (from '' to 'objstore') and requires database restart. accept restartDB to restart database, spec.databaseBackup.restartDB.accept: Invalid value: false: databaseBackup configuration has changed and requires database restart. accept restartDB to restart database] Pending 10.0.1.5-3388-eus 10.0.1.5-3388-eus 2d6h
网关
- WebSocket 支持
API Connect 通过 策略提供基本的 功能。
websocket-upgradeWebSocket 不过,在设计使用 WebSocket 通信的应用程序接口时,需要考虑一些重要的限制因素。- 一般限制
- 最大可靠信息有效载荷小于 1 KB。
- 连续快速发送多条信息可能会超出累积限制。 例如,三个连续的 500 字节报文可能会失败。
- 如果信息之间至少有 10 毫秒的延迟,则可以可靠地传输多达 100 字节的信息。
- 以大于 10 毫秒的间隔发送数据,以防止连接中断或网关问题。
- WebSocket 不支持压缩和流模式。
- 错误处理限制
- 当服务器使用状态代码 1000、1006 或 1008 关闭连接时,无论实际原因如何,客户端都会收到代码 1006。
- 如果服务器崩溃,客户端不会收到来自 DataPower Gateway 的关闭事件或错误信息。
- 可以捕捉错误:
- 在执行
websocket-upgrade策略之前的主装配中。 - 在升级后的消息处理过程中,在子装配中,消息来自子装配操作。
- 在执行
- WebSocket 连接期间或断开连接后出现的错误在升级完成后无法检测。
- 操作码和数据类型支持
- 仅支持文本框。
- 不支持二进制帧。
- 升级后的政策限制
- WebSocket 升级后,子装配体中不支持以下操作和属性:
- 客户机安全性
- 生成 JWT
- 用户安全性
- 验证 JWT
- 客户机标识
- 活动日志
- HTML 页面
- WebSocket 升级
- 解析:
- 使用内容类型
- 空输入警告
- 升级后不允许在主组件中进行任何操作。
- 升级后,只有使用受支持属性的子程序集才能处理报文。
- WebSocket 升级后,子装配体中不支持以下操作和属性:
- 一般限制
- PK12 不支持将使用旧算法创建的密钥/证书对用于
apic-gw-service - 由于 IBM
API Connect 10.0.8.0中的安全性需求增加,如果将非容器网关配置为使用通过旧算法生成的 PK12 证书/密钥对,那么 Gateway 服务将无法启动。
日志将显示以下消息:
[0x88e00011][apic-gw-service][error] apic-gw-service(default): API Connect Gateway Service caught unhandled rejection: Error: All sentinels are unreachable. Retrying from scratch after 10ms. Last error: unsupported要解决此问题,必须创建新的密钥/证书对,并使用此配置更新
apic-gw-service对象。 这可以直接通过 DataPower 加密工具或通过第三方工具 (例如 OpenSSLv3) 来完成。请注意,由于缺省为旧算法,因此无法使用 OpenSSLv1 。
- 网关 pod 在升级后可能显示为未就绪
- 在升级到 IBM
API Connect 10.0.8.0之后,网关 pod 可能无法显示为 READY。 Pod 将显示为 RUNNING ,但显示为 0/1 READY ,如以下示例中所示:
$ kubectl get pods -n <namespace> NAME READY STATUS RESTARTS AGE ... gwv6-0 1/1 Running 0 1h gwv6-1 1/1 Running 0 1h gwv6-2 0/1 Running 0 1h ...要变通此行为,请使用以下命令删除未就绪的 pod:
$ kubectl delete pod gwv6-2 -n <namespace>如果集群中有多个网关 pod ,那么删除操作不会导致任何服务中断。
- 跨数据中心的网关服务
- 如果要配置由不同数据中心内的网关组成的网关服务,请注意以下几点:
- 只有在需要 TMS 且无法使用外部 OAuth 提供程序时,才应使用此配置。
- 站点之间的网络等待时间必须小于 30 毫秒。
- 要使分析服务跨越数据中心,数据中心之间的网络延迟必须小于 10 毫秒。如果您想将分析服务与网关服务关联,但又无法满足这一延迟要求,那么请选择其中一个数据中心来托管分析服务。
- 使用 API 监管服务验证超大 API 文档时发生网关超时
- 如果您正在验证非常大的 API 文档(5 MB 或 100,000 行或更多),并且默认情况下选择了所有规则集,则 API 管理服务可能需要超过 60 秒的时间才能运行,这可能会导致 HTTP超时。 要解决此问题,您可以执行以下操作:
- 一次仅使用一个规则集来验证 API 文档。
- 增加组件部署概要文件,例如,增加到三个副本概要文件。 有关更多信息,请参阅 部署和组件概要文件,以及 在 VMware上规划部署拓扑和概要文件。
- 转换为 "DataPower API Gateway后,无效 XPath 上的 Redact 失败
- 无效 XPath 上的
Redact在转换为 "DataPower API Gateway后失败。 应用程序管理单元 (AMU)10.0.8.0-R0版支持 Redact 策略的转换,但只能转换到 Redact1.5.0 版,而不是2.0.0 版
- 转换为 DataPower API Gateway 后,
switch,operation-switch或if策略中的编辑条件可能无法执行 - 如果在
switch、operation-switch或if策略中发现 API Connect v5-compatibleredact策略,迁移实用程序不会将redact策略移动到程序集的开始或结束位置。 API Connect v5 和 DataPower API Gateway 之间的响应差异可能会阻止数据在 DataPower API Gateway 中编辑。例如,如果组合件包含
switch策略,而该策略含有四个后跟invoke策略的 redact 条件,那么每个 redact 条件都会编辑响应数据。 在移植到 API Gateway 后,redact 条件保留在switch策略内,并以message.body属性作为编辑目标。 这些编辑无法执行,因为invoke策略尚未检索到message.body属性。 要更正此问题,必须在组合件中将invoke策略移至switch策略之前。
- 解析政策限制
- 解析策略中的
literal属性不支持变量或上下文参数。 它必须是一个固定的字符串。
- 解析策略中的
Developer Portal
- 如果还禁用了论坛,那么升级后定制应用程序视图将重置为缺省值
- 将 API Connect V 10.0.5.0 或更低版本升级到 V 10.0.5.1 或更高版本时,如果在 开发者门户网站 站点上禁用了论坛,并且定制了应用程序视图,那么在升级后,定制的应用程序视图将重置为缺省值。 要解决此问题,您可以在运行升级之前保存定制的应用程序视图,然后将该视图导入到升级后的 Developer Portal中。要保存定制应用程序视图,请运行以下命令:
其中mkdir /tmp/tmp_config_<site-alias> drush @<site-alias> config-get views.view.applications > /tmp/tmp_config_<site-alias>/views.view.applications.yaml<site-alias>是 Developer Portal 站点的别名。要在升级后导入保存的视图,请将 views.view.applications.yaml 文件放在唯一文件所在的目录中,然后运行以下命令:drush @<site-alias> config-import --partial --source=/tmp/tmp_config_<site-alias>/
- "strict" SameSite cookie 会导致向使用者组织发出不正确的邀请
- 使用 "strict" SameSite cookie 可能会导致来自电子邮件的邀请链接将用户发送到注册页面,在该页面中要求用户创建新的使用者组织,而不是加入邀请他们加入的组织。
变通方法是使用 "Lax" SameSite Cookie 属性。
平台
- 新的 ibm-apiconnect-操作程序 pod 无法启动,因为现有终止 ibm-apiconnect-操作程序 pod 持有锁定
- IBM APIConnect 操作程序使用引导者选择 (终身引导者) 来确保一次只有一个操作程序/控制器 pod 处于运行/活动状态。 这依赖于 Kubernetes 垃圾回收在删除旧操作程序 pod 时清除锁定。 如果现有终止 ibm-apiconnect 操作程序 pod 仍持有锁定,那么新的 ibm-apiconnect 操作程序 pod 无法启动。
如果您怀疑迂到此问题,请通过运行以下命令进行验证:
kubectl -n <namespace> logs <new-ibm-apiconnect-pod-name> | grep "LockOwner"如果锁定是问题,那么日志包含类似于以下示例的消息:
existing lock","LockOwner":"ibm-apiconnect-xxxxxx held by terminating pod通过完成下列其中一个选项来解决问题:
- 通过运行以下命令强制删除终止 pod:
kubectl -n <namespace> delete pod <terminating-ibm-apiconnect-pod-name> --force --grace-period=0Kubernetes 在删除 pod 时删除锁定。
- 通过运行以下命令手动除去锁定:
kubectl delete cm ibm-apiconnect-lock
- 通过运行以下命令强制删除终止 pod:
- 有时,在管理子系统上完成 SFTP 复原不会复原实际数据。
- 存在一个已知问题,即有时从管理子系统的 SFTP 备份复原成功,但未复原数据。 如果发生此情况,请再次运行复原。
- 更改网关对等证书后,新网关无法连接至现有网关。
- 在网关安装后更改网关对等 SSL 证书会导致新网关无法连接到现有网关,从而导致中断。 需要完全重新启动网关 StatefulSet(通过删除所有 StatefulSet pod)才能使网关恢复联机。
- Kubernetes 可能过度收回 pod
- 在 Kubernetes中,如果提供的内存, CPU 或存储资源不足,那么将随机逐出 pod。 要避免出现此情况,请向 pod 分配充足的资源。 此外, Kubernetes 中的日志轮换还存在一些已知问题,这些问题在此处都有记录: https://github.com/kubernetes/kubernetes/issues/59902. 缺少日志循环可能导致日志因仅受到节点上的存储空间量的限制而不断增长,最终导致 pod 重新启动。 因此,请确保为所有 API Connect 组件配置了相应的日志级别。
您也可以按照此处的说明 https://success.docker.com/article/how-to-setup-log-rotation-post-installation 设置日志滚动前的最大大小(max-size)和日志文件的最大数量(max-files)。 有关 Docker JSON 文件日志记录驱动程序的更多信息,请点击此处: https://docs.docker.com/config/containers/logging/json-file/.
- 使用新证书进行升级导致分析采集中断
- 如果在安装后修改了分析子系统证书 (使用 apicup certs set 命令,后跟 apicup install 命令将更改部署到集群) ,那么 Gateway 将不再识别分析采集入口。 必须在 Cloud Manager 界面中重新注册分析服务,以便识别新证书。
- 超过 nginx 超时值的请求会导致 409 错误
- 超过
nginx超时值的请求可能导致 409 错误,例如:
发生此错误是因为入口控制器在前一个请求超时后发送了重复请求。 仍将在后台继续处理您的请求。Another request is operating on portal-subsystem-03729230-4df7-4419-94c9-e7691b616382 with the same name, please try again.
- 在 Kubernetes 中设置资源限制会导致容器在运行时行为异常
- 在 Kubernetes中,可以为每个容器设置资源限制。 但是,限制 CPU 意味着容器进程在尝试过多使用时可能会减慢速度。 限制内存意味着 Kubernetes 代码会终止尝试分配将使容器超过其限制的内存的进程。 这些限制可能导致异常行为,例如容器不断尝试启动守护进程(例如 nginx 或 node),并立即成功退出。
- 缩小 DataPower Gateway 的 Kubernetes 集群规模时,如果对等主实例丢失,那么集群可能会进入不可恢复状态
- 如果要缩减 DataPower 网关的 Kubernetes 集群,必须首先完成以下步骤以确保对等主实例不会丢失:
- 在升级操作期间将数据库加密转换为 v10.0.8.2
- IBM 已发现并解决了一个问题,该问题可能会在升级到 版本 时发生,影响数据库加密转换。 API Connect 10.0.8.2
为了解决这个问题,我们发布了 v10.0.8.2-ifix1 完整安装镜像。
- 新部署: 使用 v10.0.8.2-ifix1 来避免遇到此问题。
- 现有部署: 如果您已经升级到 v10.0.8.2 并遇到此问题,请直接升级到 v10.0.8.2-ifix1 (完全替换,而非增量补丁)。 如果您尚未升级到 10.0.8.2 ,请直接升级到 v10.0.8.2-ifix1.
在升级到 APIC 之前 v10.0.8.2-ifix1 之前,必须运行
apicops preupgrade命令检查:- 近期与加密有关的问题
- 网关扩展无效
有关详细的升级或安装步骤,请参阅 IBM 文档。
- 从 10.0.5.x升级到 10.0.8.x后出现警告信息
从 API Connect v10.0.5.x 升级到 v10.0.8.x 后,用户在分析组件中会遇到以下警告信息:
Warning: The transform of API event data into long term summary data has encountered problems. Contact your system administrator to investigate further. Long term summary data in reports may not be complete.显示此警告是因为 v10.0.5.x 处理的API事件数据无法转换为使用 v10.0.8.x长期汇总数据。
该警告不影响 10.0.8.x中的分析功能或新处理数据的准确性。 要自动解决该警告,请确保正确配置数据保留策略。 随着旧数据的清除,警告也会随之消失。 要更新保留设置,请参阅保留和展期。
Toolkit
- 具有本地 Test Environment (LTE) 的 API Designer 无法使用 https://localhost 登录,错误消息为 "用户名,密码或凭证不正确"
- 如果将 API Designer 与本地 Test Environment 配合使用,并尝试使用本地主机登录,那么登录将失败。 您可以通过向本地主机配置 API Designer 凭证来解决此问题。 完成以下步骤:
- 下载并解压缩 API Designer ,然后安装凭证文件,如 安装工具箱 中的步骤 1 , 2 和 6中所述。
- 编辑 designer_credentials.json 文件并配置以下设置:
"endpoint": "https://localhost""manager_endpoint": "https://localhost/manager""client_id": Client Id当您启动 LTE platform-apic-lte时,客户机标识将显示在控制台上。 有关更多信息,请参阅 使用本地 Test Environment。
"client_secret": Client Secret当您启动 LTE platform-apic-lte时,客户机密钥将显示在控制台上。 有关更多信息,请参阅 使用本地 Test Environment。
- 启动API设计器,使用 https://localhost 作为 URL (管理端点)登录LTE。
- 在激活大型导入的 API 时, API Designer 可能挂起
- 使用 API Designer 导入大型 API 并尝试在导入向导中激活 API 时,该过程可能会挂起。 如果迂到此问题,可以通过完成以下步骤来解决此问题:
- 在本地文件系统上,找到名为 API-NAME-auto-product_API-VERSION.yaml的自动管道文件。
- 删除文件。
- 在 API Designer 中,编辑新导入的 API 并通过单击 "联机" 开关将其激活。
通常,最佳实践是使用 联机 开关或通过使用 发布 选项发布 API 来激活 API。
- Windows 上的 API Designer: 使用 WSDL 的 API 可能会迂到错误,或者无法激活,发布或更新。
- 如果您激活,发布或更新使用 WSDL 文件的 REST 或 SOAP API ,那么操作可能会失败,并且永远不会完成。 通过在 API 编辑器中使用自动发布 API 功能来解决此问题。
- API Designer UI 中的许可权限制
- API Designer UI 当前具有以下许可权限制:
- 仅获得 查看 许可权的开发者无法在 API 编辑器中查看 测试 选项卡。 要使开发者能够查看 测试 选项卡,必须为他们提供不同的许可权级别。 有关可用的缺省许可权级别的信息,请参阅 API Connect 用户角色。
- 具有 API-Drafts 许可权但没有任何沙箱目录许可权的用户无法在沙箱目录中看到 测试首选项 。 要使这些用户能够查看 测试首选项,必须向他们授予 "沙箱目录" 上的 开发者 或 管理员 角色。
- 已删除的安全需求可能保留在 API 源中
- 从 API Designer 和 API Manager UI 中的 API 中删除的安全性需求可能仍保留在源中。 要解决这个问题,请单击 API 编辑器中的源图标
,然后手动移除安全要求。
- 无法使用 API Designer 和 API Manager UI 中的 "源" 视图向 API 添加注释
- 在 API 设计器和 API 管理器用户界面中,不能通过单击源图标
并使用标签符号为 API 添加注释。
- 将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组
- 在 API Designer 和 API Manager UI 中,将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组,因此产品发布将失败。 要解决此问题,请手动除去所有使用者组织和组。
- 测试首选项中的 "选择兼容网关服务" 选项导致在测试 API 时发生 "404 POST undefined" 错误
- 在 设置中,选择 “选择兼容的网关服务” 并选择特定网关会导致在 API Explorer 或“测试”选项卡中测试 API 时出现“404 POST 未定义”错误。
变通方法: 要避免此问题,请改为选择 使用所有兼容网关服务 目标网关选项。
- OpenAPI 3.0 支持的限制
- IBM API Connect 支持 OpenAPI 3.0 规范,但存在一些限制。 有关支持的内容的信息,请参阅 OpenAPI 3.0 支持。
- 包含
graphql-input-type-cost速率限制的 GraphQL API 无法发布 - 在低于 IBM
API Connect 版本 10.0.3.0 的发行版中创建的 GraphQL API 可能包含不再受支持的
graphql-input-type-cost速率限制。 如果尝试使用自动激活机制来发布 API ,或者手动将 API 添加到产品并尝试发布该产品,那么发布操作将失败。 可以通过以下任一方法解决此问题:- 从 API 的 OpenAPI 源中除去速率限制定义。 例如,如果源为 YAML 格式,请除去以下行:
- name: graphql-input-type-cost operation: consume - 编辑产品的源,并在所有包含 API 的计划中定义
graphql-input-type-cost速率限制。注: 只能编辑手动创建的产品,而不能编辑由自动激活机制生成的产品。
- 从 API 的 OpenAPI 源中除去速率限制定义。 例如,如果源为 YAML 格式,请除去以下行:
- 更新 WSDL 选项在 API Designer UI 中不受支持
- 更新 WSDL 选项用于从 WSDL 文件或 .zip 归档更新现有 SOAP API 的配置,仅在 API Manager UI 中受支持,或者通过使用 开发者工具箱受支持。 此选项在 API Designer UI 中不受支持。
- 无法发布具有重复安全性定义条目的 API
- API Designer 和 API Manager 用户界面允许您向 API 添加重复的安全性定义。 但是,尝试发布此 API 将失败,并且出现 OpenAPI 验证错误。 请确保 API 中的安全性定义唯一。
- 无批量删除 API 或产品的选项
- 在 API Designer 和 API Manager 用户界面中,当前没有用于在单个操作中删除多个 API 或产品的选项; 在用户界面中,必须单独删除 API 和产品。 但是,您可使用 REST API 或 CLI 接口来批量删除 API 和产品。
- 客户机安全策略的字段验证不正确
- 在 API Designer 或 API Manager 用户界面中的 API 组合件中配置客户机安全策略时,存在以下不正确的验证行为:
- 标识名称字段为必填项,但是可以保存 API 定义而不必在字段中输入值。
- 仅当选择需要密钥选项时,密钥名称字段才是必填项,但是用户界面指示无论如何密钥名称都是必填项。 此外,当该字段为必填项时,可以保存 API 定义而不必输入值。
- 如果认证客户机方法设置为第三方,那么用户注册表名称字段是必填字段,但可以保存 API 定义以避免在此字段中输入值。
- 如果启动目录中存在格式错误的 OpenAPI YAML 文件,那么 API Designer 用户界面可能无法正确打开
- 如果在启动 API Designer 用户界面时,您选择的启动目录包含一个或多个格式错误的 OpenAPI YAML 文件,那么该界面可能无法正确装入,并产生如下错误:
Cannot read property 'type' of null要解决此问题,请从启动目录中除去任何无效的 OpenAPI YAML 文件,然后重新启动 API Designer 用户界面。
apic cloud-settings:mail-server-configured命令响应不正确- 如果使用不带
--format参数的apic cloud-settings:mail-server-configured,那么它仅返回字符串MailServerConfigured而不是布尔值,以指示是否在云设置中配置了电子邮件服务器。 要检索正确的响应,请根据需要包含值为yaml或json的--format参数。
- 包含正则表达式语法的 OpenAPI 定义验证失败
- IBM
API Connect 支持 GO 正则表达式语法。 当您将 OpenAPI 定义导入到 API Designer 或 API Manager 用户界面中,或者使用
apic validate验证一个定义时,如果 OpenAPI 源包含不受支持的正则表达式语法 (错误包括Does not match format 'regex') ,那么验证将失败; 例如:- Must validate at least one schema (anyOf) (context: (root).paths./example/types.post.parameters.0.schema.properties.items, line: 0, col: 0) - Must validate one and only one schema (oneOf) (context: (root).paths./example/types.post.parameters.0, line: 46164, col: 21) - paths./example/types.post.parameters.0.schema.properties.items.properties.pattern Does not match format 'regex' (context: (root).paths./example/types.post.parameters.0.schema.properties.items.properties.pattern, line: 0, col: 0)
- 在 GraphQL 响应包含 GraphQL 服务器错误时验证策略限制
- 当 GraphQL 响应包含 GraphQL 服务器错误且无数据时,组合件验证策略会在缺少的数据上生成错误并覆盖有效内容。 当响应包含部分数据和错误时,组合件 Validate 操作会验证数据并覆盖有效内容。 要解决此限制,请在组合件切换条件中使用条件
$not($exists(message.body.errors)),以在响应包含错误时跳过组合件 Validate 策略。
- 针对使用
apim.getvariable('message.body')函数调用的 IBM API Connect V 2018.4.1 开发的 API 在 IBM API Connect V10 中失败 - 对于 IBM
API Connect V 2018.4.1中的 DataPower API Gateway ,对于 XML 有效内容,由 API 组合件中的 GatewayScript 策略中的
apim.getvariable('context_name.body')函数调用返回的对象类型取决于该变量在网关上下文中的存储方式,如下所示:- 如果变量作为缓冲区进行存储(因为变量数据编写为 XML 字符串),那么会返回 XML Nodelist,前提是
contextname.headers.content-type是 XML 类型。 - 如果变量作为已解析的 XML 文档进行存储(因为变量数据编写为已解析的 XML,即,作为 XML 文档或 XML Nodelist),那么会返回 XML 文档。
但是,对于 IBM API Connect V10 中的 DataPower API Gateway ,同一函数调用始终返回 XML Nodelist ,前提是
contextname.headers.content-type是 XML 类型。 因此,如果针对 V2018.4.1 开发的此类 API 配置为期望 XML 文档,那么在 V10 中将失败,并将需要相应地重新配置。从 IBM API Connect V 5 迁移的此类 API 不会发生此问题,因为在该发行版中,
apim.getvariable('context_name.body')还会返回 XML 有效内容的 XML Nodelist ,如果您使用的是 DataPower Gateway (v5 compatible),那么也不会发生此问题。context_name可以是message、request或来自invoke策略的输出的名称。 - 如果变量作为缓冲区进行存储(因为变量数据编写为 XML 字符串),那么会返回 XML Nodelist,前提是
- 对于受保护的 GraphQL API ,无法使用用户界面中的 "测试" 选项卡来测试 GraphQL 预订
- 对于受客户机标识保护的 GraphQL API ,无法使用 API Designer 或 API Manager 用户界面中的 测试 选项卡来测试 GraphQL 预订。 仍可以在生产中发布和使用 API。您可以通过以下任一替代方法来测试 GraphQL 预订:
- 从 API 中除去客户机标识安全性,以便进行测试,然后使用 测试 选项卡。
- 使用外部测试工具。
apic cloud-settings:topology命令未返回拓扑对象- 如果使用不带
--format参数的apic cloud-settings:topology命令,那么它仅返回字符串CloudTopology,而不返回云拓扑。 要检索拓扑对象,请根据需要包含值为yaml或json的--format参数。
用户界面
- 旧高速缓存可能会导致 Cloud Manager 和 API Manager UI 中出现意外行为
- 在浏览器中使用旧高速缓存可能会导致 Cloud Manager 和 API Manager UI 中出现意外行为,例如访存错误,显示的数据不正确以及空白页面。 要解决此问题, 尤其是如果您刚刚升级了部署, 请完成以下操作:
- 重新装入浏览器窗口。
- 如果仍存在问题,请清除浏览器高速缓存,然后重新登录到 UI。
- 请尝试使用专用浏览器窗口。
- 如果可能,请尝试其他浏览器类型。
- 对 API 定义的已更新模式编辑器的限制
- 在 API Connect 10.0.6.0中更新了 API Manager 和 API Designer UI 的 API 编辑器的 定义 部分。 但是, UI 未正确处理
OneOf,AllOf和Enum模式结构。 您可以通过编辑 API 文档的源 YAML 来解决此问题。
- 目录中的选项菜单可能隐藏
- 在目录中,在任何不同的选项卡(如消费者或订阅 )中,当点击选项图标
时,菜单项可能会被隐藏。 要解决此问题,请重新装入页面,此时将显示菜单项。
- 覆盖计划速率限制不会显示在 端点 选项卡中
- 已针对个别操作添加到 API 的任何覆盖计划速率限制都不会显示在 UI 的 "API 端点 " 选项卡中。 仅显示计划速率限制。
- 从可视性设置中移除使用者组织组后,使用“保留预订”选项重新发布产品失败
- 如果从产品的定制可视性设置中除去使用者组织组,并且该组包含具有预订该产品的应用程序的使用者组织,那么尝试使用 "保留预订" 选项重新发布该产品将失败,即使随后将该使用者组织单独添加到定制可视性设置也是如此。
- 分页设置在 API Connect 用户界面中是全局性的
- 如果在 Cloud Manager 或 API Manager 用户界面中的任何页面上设置 每页项 值,那么该设置将应用于同一浏览器会话中两个用户界面中的所有页面。 如果要为特定页面单独设置该值,请在专用浏览器窗口中打开此页面。 专用浏览器窗口中的此类设置特定于该窗口,并且在窗口关闭时丢失。
- 使用 Safari Web 浏览器时,登录到 API Connect 用户界面失败
- 如果您正在使用 Safari Web 浏览器,并且针对运行 API Connect 的同一 DNS 域存在基本授权头,那么尝试登录到 API Connect 用户界面或使用激活链接进行注册将失败。 为避免此问题,请使用其他 Web 浏览器。
- 如果浏览器具有大量 cookie ,那么登录到 Cloud Manager 或 API Manager 用户界面 可能会失败,并产生错误 431
- 如果 HTTP或cookie的大小超过32 KB,登录 云管理器或 API管理器用户界面的 尝试可能会失败,这是出于安全考虑而设置的限制。 要解决此问题,请清除浏览器高速缓存和 cookie,或者打开专用窗口,然后重试。
- YAML配置中的数值处理和API管理器用户界面中的精确约束
- 在 API 管理器用户界面 YAML 配置中,指数表示法中的数字(例如 1e20 )会根据指数值的不同而采用不同的处理方式。 指数小于或等于20的数字在显示和处理时转换为整数形式(例如, 1e20 转换为 100,000,000,000,000,000,000)。 指数大于20的数字保留指数表示法(例如 1e21 )。 超过 DataPower JSON模式验证支持的整数范围( (-9 ,007,199,254,740,992至9,007,199,254,740,992)的数字会导致验证错误或意外行为。
- JavaScript's 固有的精度限制将浮点数截断为大约17位有效数字。 例如:
- 输入: 0.123456789012345678901234567890
- 加工价值: 0.12345678901234568
- 用户界面在 Microsoft Edge 中不受支持
- API Manager 和 Cloud Manager 用户界面在 Microsoft Edge Web 浏览器中不受支持。 要在用户界面中工作,请使用其他浏览器。