已知限制

本页描述了 "API Connect V10Reserved 的已知限制。

注: 将除去此页面上记录的限制,因为这些限制是在 IBM® API Connect 产品中解决的。 要获取产品限制的最新列表,请访问本页面的英语版本。

分析

某些子系统不支持 Instana Auto Trace 和 Dynatrace 注入

管理、分析、 开发人员门户和网关子系统不支持 Instana AutoTrace。 在这些子系统中使用 Instana AutoTrace 可能会导致损坏;此外, 开发人员门户子系统不支持 Dynatrace 注入,也可能导致损坏。 更多信息,请参阅 Instana AutoTrace

注意: 此问题源于 Instana 集成,与 API Connect 无关。
Analytics 命令限制
仅当标志 --return_format 设置为 jsonyaml时,以下 --mode analytics 命令才有效:
  • clustermgmt:catAllocation
  • clustermgmt:catIndices
  • clustermgmt:catNodes
  • clustermgmt:catRecovery
  • clustermgmt:catShards
  • clustermgmt:catAliases
以下命令当前在 Toolkit CLI 上不起作用,因为它们仅返回 text/plain:
  • clustermgmt:getNodesHotThreads
  • clustermgmt:getNodesHotThreadsById

使用者速率限制通知在 V10 中不可用
能够为应用程序配置通知,以便在 API 的使用率接近其速率限制时向 API 使用者发出警报。

API 监管

在规则集内进行验证可显示所有规则
治理服务中,如果从规则集中单击验证,显示的规则列表中会包含不属于所选规则集的规则。 要解决这个问题,可以手动选择要用于验证的规则。

API Manager

如果在目录中未启用 OAuth 提供者引用的资源,那么 OAuth 提供者将失败
如果在目录中启用 OAuth 提供者,那么它引用的任何资源 (例如 API 用户注册表或 TLS 客户机概要文件) 都必须在同一目录中启用; 否则,虽然 OAuth 提供者可能会在运行时成功发布,但它将失败。 有关在目录中启用资源的信息,请参阅 创建和配置目录

如果在创建新 API 版本之前未保存 API 更改,那么 UI 行为不正确
如果对 API 定义进行更改,然后尝试在不首先保存更改的情况下创建新的 API 版本,那么直到完成新版本创建操作之后才会提示您保存更改。 如果单击提示中的确定,那么将创建新版本,但是原始更改会丢失;要创建新版本并保留原始更改,应单击提示中的取消,然后单击保存以保存原始更改。

多个用户同时编辑同一 API 可能会导致覆盖更改
如果一个用户保存对 OpenAPI 3.0 API 的更改,那么在 API 编辑器中打开相同 API 的另一个用户可能会覆盖其更改。

无法将现有用户添加到空间
如果尝试将现有用户添加到空间,那么无法完成此操作,因为未启用 创建 按钮。 请改为使用邀请机制。 有关详细信息,请参阅 管理空间成员资格
注: 受邀用户必须使用激活表单上的 登录 选项,而不是完成注册详细信息并使用 注册
其组合件包含具有无效策略的 catch 块的已发布 API 现在将无法正确重新发布
先前,未验证组合件 catch 块中的策略,因此如果在 API 的 OpenAPI 源中编码了不正确的策略配置,那么在组合件 catch 块中, API 仍会成功发布。 现在,已验证组合件 catch 块中的策略,因此此类 API 将无法重新发布,首先需要更正。

Cloud Manager

Cloud Pak for Integration

网关

WebSocket 支持

API Connect 通过 策略提供基本的 功能。 websocket-upgrade WebSocket 不过,在设计使用 WebSocket 通信的应用程序接口时,需要考虑一些重要的限制因素。

  1. 一般限制
    • 最大可靠信息有效载荷小于 1 KB。
    • 连续快速发送多条信息可能会超出累积限制。 例如,三个连续的 500 字节报文可能会失败。
    • 如果信息之间至少有 10 毫秒的延迟,则可以可靠地传输多达 100 字节的信息。
    • 以大于 10 毫秒的间隔发送数据,以防止连接中断或网关问题。
    • WebSocket 不支持压缩和流模式。
  2. 错误处理限制
    • 当服务器使用状态代码 1000、1006 或 1008 关闭连接时,无论实际原因如何,客户端都会收到代码 1006。
    • 如果服务器崩溃,客户端不会收到来自 DataPower Gateway 的关闭事件或错误信息。
    • 可以捕捉错误:
      • 在执行 websocket-upgrade 策略之前的主装配中。
      • 在升级后的消息处理过程中,在子装配中,消息来自子装配操作。
    • WebSocket 连接期间或断开连接后出现的错误在升级完成后无法检测。
  3. 操作码和数据类型支持
    • 仅支持文本框。
    • 不支持二进制帧。
  4. 升级后的政策限制
    • WebSocket 升级后,子装配体中不支持以下操作和属性:
      • 客户机安全性
      • 生成 JWT
      • 用户安全性
      • 验证 JWT
      • 客户机标识
      • 活动日志
      • HTML 页面
      • WebSocket 升级
      • 解析:
        • 使用内容类型
        • 空输入警告
    • 升级后不允许在主组件中进行任何操作。
    • 升级后,只有使用受支持属性的子程序集才能处理报文。
不支持使用传统算法创建的PK12密钥/证书对与 "apic-gw-service一起使用。
由于 "IBM API Connect 10.0.8.0 中的安全要求提高,如果您将非容器网关配置为使用传统算法生成的PK12证书/密钥对,网关服务将无法启动。

日志将显示以下信息:

[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,因为默认为传统算法。

转换为 "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 后, switchoperation-switchif 策略中的编辑条件可能无法执行
如果在 "switch"、"operation-switch"或 "if策略中发现了 "API Connect、"v5-compatible"或 "redact策略,迁移工具不会将 "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 策略之前。

在API Designer和API Manager中, v5c 网关API的自动发布和测试存在限制

在API Designer和API Manager中, v5c 网关不支持使用 “测试”选项卡进行自动发布或API测试。 在 v5c 网关中, 测试选项卡不可用,也不会出现在API编辑器中。

Developer Portal

"strict" SameSite cookie 会导致向使用者组织发出不正确的邀请
使用 "strict" SameSite cookie 可能会导致来自电子邮件的邀请链接将用户发送到注册页面,在该页面中要求用户创建新的使用者组织,而不是加入邀请他们加入的组织。

变通方法是使用 "Lax" SameSite Cookie 属性。

V10 保留中不支持基于 IP 的 Portal 安全功能
V10Reserved 网络拓扑结构不保留真正的客户端 IP 地址,因此开发人员门户网站中基于 IP 的安全功能无法按预期运行。

平台

从版本 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登录,并显示错误信息 "用户名、密码或凭据不正确"
如果在本地Test Environment下使用 API 设计器,并尝试使用本地主机登录,则登录失败。 您可以通过将 API Designer 凭据配置为本地主机来解决这个问题。 完成以下步骤:
  1. 下载并解压 API Designer,然后按照 .NET Framework 3.0 中的说明安装凭证文件。

  2. 编辑 "designer_credentials.json文件并配置以下设置:
    • "endpoint": "https://localhost"

    • "manager_endpoint": "https://localhost/manager"

    • "client_id": Client Id

      启动 LTE "platform-apic-lte时,控制台会显示客户端 ID。 更多信息,请参阅使用本地Test Environment测试 API

    • "client_secret": Client Secret

      启动 LTE "platform-apic-lte时,控制台会显示客户秘密。 更多信息,请参阅使用本地Test Environment测试 API

  3. 启动API设计器,使用LTE登录,将 https://localhost 作为主机 URL (管理端点)。

在激活大型导入的 API 时, API Designer 可能挂起
使用 API Designer 导入大型 API 并尝试在导入向导中激活 API 时,该过程可能会挂起。 如果迂到此问题,可以通过完成以下步骤来解决此问题:
  1. 在本地文件系统上,找到名为 API-NAME-auto-product_API-VERSION.yaml的自动管道文件。
  2. 删除文件。
  3. 在 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 DesignerAPI Manager UI 中的 API 中删除的安全性需求可能仍保留在源中。 要解决这个问题,请单击 API 编辑器中的图标 OpenAPI 源图标 ,然后手动移除安全要求。

无法使用 API DesignerAPI Manager UI 中的 "源" 视图向 API 添加注释
API 设计器API 管理器用户界面中,不能通过单击图标 OpenAPI 源图标 并使用标签符号为 API 添加注释。

将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组
API DesignerAPI Manager UI 中,将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组,因此产品发布将失败。 要解决此问题,请手动除去所有使用者组织和组。

测试首选项中的 "选择兼容网关服务" 选项导致在测试 API 时发生 "404 POST undefined" 错误
测试首选项 > 目标网关服务设置中,选择选择兼容网关服务并选择特定网关会导致在 API 资源管理器或测试选项卡中测试 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
API DesignerAPI Manager 用户界面允许您向 API 添加重复的安全性定义。 但是,尝试发布此 API 将失败,并且出现 OpenAPI 验证错误。 请确保 API 中的安全性定义唯一。

无批量删除 API 或产品的选项
API DesignerAPI Manager 用户界面中,当前没有用于在单个操作中删除多个 API 或产品的选项; 在用户界面中,必须单独删除 API 和产品。 但是,您可使用 REST API 或 CLI 接口来批量删除 API 和产品。

客户机安全策略的字段验证不正确
API DesignerAPI Manager 用户界面中的 API 组合件中配置客户机安全策略时,存在以下不正确的验证行为:
  • 标识名称字段为必填项,但是可以保存 API 定义而不必在字段中输入值。
  • 仅当选择需要密钥选项时,密钥名称字段才是必填项,但是用户界面指示无论如何密钥名称都是必填项。 此外,当该字段为必填项时,可以保存 API 定义而不必输入值。
  • 如果认证客户机方法设置为第三方,那么用户注册表名称字段是必填字段,但可以保存 API 定义以避免在此字段中输入值。
包含正则表达式语法的 OpenAPI 定义验证失败
IBM API Connect 支持 GO 正则表达式语法。 当您将 OpenAPI 定义导入到 API DesignerAPI 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 可以是 messagerequest 或来自 invoke 策略的输出的名称。

对于受保护的 GraphQL API ,无法使用用户界面中的 "测试" 选项卡来测试 GraphQL 预订
对于受客户机标识保护的 GraphQL API ,无法使用 API DesignerAPI Manager 用户界面中的 测试 选项卡来测试 GraphQL 预订。 仍可以在生产中发布和使用 API。
您可以通过以下任一替代方法来测试 GraphQL 预订:
  • 从 API 中除去客户机标识安全性,以便进行测试,然后使用 测试 选项卡。
  • 使用外部测试工具。

用户界面

审计事件和相关业务约定部分在版本中无法运行 10.0.8.3

在 10.0.8.3 版本中,审计事件和相关业务约定部分目前没有功能。 这些部分可能无法按预期显示或记录事件。 尝试访问它们可能会导致 HTTP 500(内部服务器错误)或 HTTP 403(禁止)响应。

这个问题计划在 10.0.8.4 版本中解决。

旧高速缓存可能会导致 API Manager UI 中出现意外行为
在浏览器中使用旧高速缓存可能会导致 API Manager UI 中出现意外行为,例如访存错误,显示不正确的数据以及空白页面。 要解决此问题,请完成以下操作:
  • 重新装入浏览器窗口。
  • 如果仍存在问题,请清除浏览器高速缓存,然后重新登录到 UI。
  • 请尝试使用专用浏览器窗口。
  • 如果可能,请尝试其他浏览器类型。
如果问题仍然存在,请联系 IBM 支持人员。

用于 API 定义的更新模式编辑器的局限性
在 "API Connect中更新了API 管理器API 设计器用户界面的 API 编辑器的 "定义"部分。 但是,用户界面没有正确处理 OneOfAllOfEnum 模式结构。 您可以通过编辑 API 文档的源 YAML 来解决这个问题。

目录中的选项菜单可能隐藏
在目录中,在任何不同的选项卡(如消费者订阅 )中,当点击选项图标 “选项”图标 时,菜单项可能会被隐藏。 要解决此问题,请重新装入页面,此时将显示菜单项。

覆盖计划速率限制不会显示在 端点 选项卡中
已针对个别操作添加到 API 的任何覆盖计划速率限制都不会显示在 UI 的 "API 端点 " 选项卡中。 仅显示计划速率限制。

从可视性设置中移除使用者组织组后,使用“保留预订”选项重新发布产品失败
如果从产品的定制可视性设置中除去使用者组织组,并且该组包含具有预订该产品的应用程序的使用者组织,那么尝试使用 "保留预订" 选项重新发布该产品将失败,即使随后将该使用者组织单独添加到定制可视性设置也是如此。

分页设置在 "API Connect用户界面上是全局性的
如果在 API Manager 用户界面中的任何页面上设置 每页项 值,那么该设置将应用于同一浏览器会话中两个用户界面中的所有页面。 如果要为特定页面单独设置该值,请在专用浏览器窗口中打开此页面。 专用浏览器窗口中的此类设置特定于该窗口,并且在窗口关闭时丢失。

使用 Safari Web 浏览器时,登录到 API Connect 用户界面失败
如果您正在使用 Safari Web 浏览器,并且针对运行 API Connect 的同一 DNS 域存在基本授权头,那么尝试登录到 API Connect 用户界面或使用激活链接进行注册将失败。 为避免此问题,请使用其他 Web 浏览器。

如果浏览器具有大量 cookie ,那么登录到 API Manager 用户界面 可能会失败,并返回错误 431
如果 HTTP 标头或cookie的大小超过32 KB,登录 API管理器用户界面的尝试可能会失败,这是出于安全考虑而设置的限制。 要解决此问题,请清除浏览器高速缓存和 cookie,或者打开专用窗口,然后重试。

YAML 配置中的数值处理和 API 管理器用户界面中的精度限制
  • API 管理器用户界面 YAML 配置中,指数符号中的数字(例如1e20)会根据其指数值进行不同处理。 指数小于或等于 20 的数字会转换为完整的整数形式(例如1e20变为 100,000,000,000,000,000),以便显示和处理。 指数大于 20 的数字仍使用指数符号(例如1e21)。 超过DataPowerJSON 模式验证支持的整数范围(-9,007,199,254,740,992 至 9,007,199,254,740,992)的数字会导致验证错误或意外行为。
  • JavaScript's固有的精度限制会将浮点数截断到大约 17 个有效数字。 例如:
    • 输入:1234567890123456789012345678900.123456789012345678901234567890
    • 处理值:0.12345678901234568

用户界面在 Microsoft Edge 中不受支持
API ManagerCloud Manager 用户界面在 Microsoft Edge Web 浏览器中不受支持。 要在用户界面中工作,请使用其他浏览器。