已知限制
此页面描述了 API Connect Enterprise as a Service的已知限制。
分析
- 不支持亚马逊 SNS 集成
- 您不能将亚马逊简单通知服务 (SNS) 用于 "参与"。
- 某些子系统不支持 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
- 如果在目录中未启用 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-upgradeWebSocket 不过,在设计使用 WebSocket 通信的应用程序接口时,需要考虑一些重要的限制因素。- 一般限制
- 最大可靠信息有效载荷小于 1 KB。
- 连续快速发送多条信息可能会超出累积限制。 例如,三个连续的 500 字节报文可能会失败。
- 如果信息之间至少有 10 毫秒的延迟,则可以可靠地传输多达 100 字节的信息。
- 以大于 10 毫秒的间隔发送数据,以防止连接中断或网关问题。
- WebSocket 不支持压缩和流模式。
- 错误处理限制
- 当服务器使用状态代码 1000、1006 或 1008 关闭连接时,无论实际原因如何,客户端都会收到代码 1006。
- 如果服务器崩溃,客户端不会收到来自 DataPower Gateway 的关闭事件或错误信息。
- 可以捕捉错误:
- 在执行
websocket-upgrade策略之前的主装配中。 - 在升级后的消息处理过程中,在子装配中,消息来自子装配操作。
- 在执行
- WebSocket 连接期间或断开连接后出现的错误在升级完成后无法检测。
- 操作码和数据类型支持
- 仅支持文本框。
- 不支持二进制帧。
- 升级后的政策限制
- WebSocket 升级后,子装配体中不支持以下操作和属性:
- 客户机安全性
- 生成 JWT
- 用户安全性
- 验证 JWT
- 客户机标识
- 活动日志
- HTML 页面
- WebSocket 升级
- 解析:
- 使用内容类型
- 空输入警告
- 升级后不允许在主组件中进行任何操作。
- 升级后,只有使用受支持属性的子程序集才能处理报文。
- 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 后,
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策略之前。
开发人员门户网站
- "strict" SameSite cookie 会导致向使用者组织发出不正确的邀请
- 使用 "strict" SameSite cookie 可能会导致来自电子邮件的邀请链接将用户发送到注册页面,在该页面中要求用户创建新的使用者组织,而不是加入邀请他们加入的组织。
变通方法是使用 "Lax" SameSite Cookie 属性。
工具包
- 使用本地 Test Environment (LTE) 的 API Designer 无法使用 https://localhost 登录,并显示错误信息 "
用户名、密码或凭据不正确
" - 如果将 API Designer 与本地 Test Environment 配合使用,并尝试使用本地主机登录,那么登录将失败。 您可以通过向本地主机配置 API Designer 凭证来解决此问题。 完成以下步骤:
- 下载并解压缩 API Designer ,然后安装凭证文件,如 设置 API Connect Toolkit 中的步骤 1 , 2 和 7中所述。
- 编辑 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 Designer,使用 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 中,将产品可视性从 定制 更改为 公共 不会自动除去使用者组织和组,因此产品发布将失败。 要解决此问题,请手动除去所有使用者组织和组。
- 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 格式,请除去以下行:
- 无法发布具有重复安全性定义条目的 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 定义验证失败
- 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 策略。
- 对于受保护的 GraphQL API ,无法使用用户界面中的 "测试" 选项卡来测试 GraphQL 预订
- 对于受客户机标识保护的 GraphQL API ,无法使用 API Designer 或 API Manager 用户界面中的 测试 选项卡来测试 GraphQL 预订。 仍可以在生产中发布和使用 API。您可以通过以下任一替代方法来测试 GraphQL 预订:
- 从 API 中除去客户机标识安全性,以便进行测试,然后使用 测试 选项卡。
- 使用外部测试工具。
- 仅适用于 API Connect 企业即服务的公共网络后端连接
- 在 API Connect 企业即服务中,调用的后端连接只能通过公共网络支持。
用户界面
- 旧高速缓存可能会导致 API Manager UI 中出现意外行为
- 在浏览器中使用旧高速缓存可能会导致 API Manager UI 中出现意外行为,例如访存错误,显示不正确的数据以及空白页面。 要解决此问题,请完成以下操作:
- 重新装入浏览器窗口。
- 如果仍存在问题,请清除浏览器高速缓存,然后重新登录到 UI。
- 请尝试使用专用浏览器窗口。
- 如果可能,请尝试其他浏览器类型。
- 对 API 定义的已更新模式编辑器的限制
- 在 API Connect中更新了 API Manager 和 API Designer UI 的 API 编辑器的 定义 部分。 但是, UI 未正确处理
OneOf,AllOf和Enum模式结构。 您可以通过编辑 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 Manager 和 Cloud 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 秒后关闭。