已知限制

此页面描述了 API Connect Enterprise as a Service的已知限制。

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

分析

不支持亚马逊 SNS 集成
您不能将亚马逊简单通知服务 (SNS) 用于 "参与"。
某些子系统不支持 Instana AutoTrace 和 Dynatrace 注入

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

注:
  • OpenTelemetry 支持基于 DataPower® API Gateway 的跟踪,也是推荐的方法。 更多信息,请参阅启用 OpenTelemetry 配置
  • 该问题源于 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 将无法重新发布,首先需要更正。

使用 Cloudflare 配置虚拟主机名

如果使用 Cloudflare 作为 DNS 提供商,则无法创建自定义虚拟主机名。 使用 API Connect 提供的其他 DNS 提供商或标准主机名配置。

云管理者

API Connect 企业即服务不支持 API 的私有端点
API Connect 企业即服务中,只能通过公共网络调用 API。 不支持专用端点。

网关

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 升级
      • 解析:
        • 使用内容类型
        • 空输入警告
    • 升级后不允许在主组件中进行任何操作。
    • 升级后,只有使用受支持属性的子程序集才能处理报文。
转换为 "DataPower API Gateway后,无效 XPath 上的 Redact 失败
无效 XPath 上的Redact在转换为 "DataPower API Gateway后失败。 应用程序管理单元 (AMU) 版本 10.0.8.0-R0 支持 Redact 策略的转换,但只支持 Redact 版本 1.5.0 ,不支持 2.0.0

转换为 DataPower API Gateway 后, switchoperation-switchif 策略中的编辑条件可能无法执行
如果在 switchoperation-switchif 策略中发现 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 策略之前。

开发人员门户网站

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

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

工具包

使用本地 Test Environment (LTE) 的 API Designer 无法使用 https://localhost 登录,并显示错误信息 " 用户名、密码或凭据不正确 "
如果将 API Designer 与本地 Test Environment 配合使用,并尝试使用本地主机登录,那么登录将失败。 您可以通过向本地主机配置 API Designer 凭证来解决此问题。 完成以下步骤:
  1. 下载并解压缩 API Designer ,然后安装凭证文件,如 设置 API Connect Toolkit 中的步骤 1 , 2 和 7中所述。

  2. 编辑 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

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

在激活大型导入的 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 中,将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组,因此产品发布将失败。 要解决此问题,请手动除去所有使用者组织和组。

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 策略。

对于受保护的 GraphQL API ,无法使用用户界面中的 "测试" 选项卡来测试 GraphQL 预订
对于受客户机标识保护的 GraphQL API ,无法使用 API DesignerAPI Manager 用户界面中的 测试 选项卡来测试 GraphQL 预订。 仍可以在生产中发布和使用 API。
您可以通过以下任一替代方法来测试 GraphQL 预订:
  • 从 API 中除去客户机标识安全性,以便进行测试,然后使用 测试 选项卡。
  • 使用外部测试工具。
仅适用于 API Connect 企业即服务的公共网络后端连接
API Connect 企业即服务中,调用的后端连接只能通过公共网络支持。

用户界面

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

对 API 定义的已更新模式编辑器的限制
API Connect中更新了 API ManagerAPI Designer UI 的 API 编辑器的 定义 部分。 但是, UI 未正确处理 OneOfAllOfEnum 模式结构。 您可以通过编辑 API 文档的源 YAML 来解决此问题。

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

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

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

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

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

如果浏览器有大量 cookie,登录 API 管理器用户界面可能会失败,显示错误 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 浏览器中不受支持。 要在用户界面中工作,请使用其他浏览器。

安装

API Connect 企业即服务要求您的实例名称必须少于或等于 25 个字符
创建 API Connect Enterprise as a Service 的新实例时,请将实例名称限制为 25 个字符或更少。

API Connect 企业即服务要求您的 IBMid 与您的主电子邮件地址相匹配
如果您的IBMid与您的主电子邮件地址不匹配,您在尝试登录服务实例时就会遇到问题,登录页面会陷入循环,始终无法登录API Connect
  • 如果您计划配置或使用 API Connect 企业即服务,您必须首先更新您的 IBMid(或创建一个新的),使其与您的主电子邮件地址相匹配。
  • 如果您已经使用不支持的 IBMid 配置了 API Connect Enterprise as a Service 的实例,请执行以下操作之一:
    • 在更新 IBMid 并供应新实例之前,请请求 IBM 支持人员删除该实例。
    • 使用与主电子邮件地址匹配的电子邮件地址创建新的 IBMid ,然后供应新的实例。
API Connect 企业即服务允许与端点的连接长达 127 秒。
即使 API 继续发送保持活动事件,连接也将在 127 秒后关闭。