组合件编辑器
IBM® API Connect 的 API Designer 具有可用于创建组合件的图形编辑器。 借助组合件,您可以轻松地调整自己的 API 以包含诸如特定字段的活动日志记录和编辑之类的元素。
- 调色板 - 列出装配流程中的可用元素。
- 画布 - 用于排列和可视化组件中的元素。
- 属性表 - 用于配置组件中的元素。
选用板
选用板是可以添加到组合件中的不同元素的列表。 要查看调色板,请单击画布上的加号图标 "
。 您可以使用旋转图标 "
来旋转调色板。 要最大化和最小化调色板视图,请单击 "最大化"和 "最小化"图标。
单击关闭图标 "
即可释放调色板。
画布
您可以使用画布来创建组合件流的图形表示。 要从调色板向装配流程中添加元素,请单击画布上适当位置的加号图标 "
,然后从可用列表中选择所需的元素。 要从画布上删除元素,请将鼠标悬停在该元素上,然后单击删除图标 "
。
API 调用在最初未填充的圆圈处发出,在最终已填充的圆圈处返回。 您可以在这两个圆圈之间插入元素,以修改从调用接收到的数据或者响应返回的数据。
您可以使用显示 catch 开关以显示和隐藏选用板中的错误 catch。 Catch 是在 API 调用生成返回的相应 HTTP 状态码时应用的组合件部分。 单击 catch 部分以打开所有 catch 的属性工作表。
您可以通过单击 + 和 - 图标将画布的视图放大和缩小。 要使画布适合屏幕尺寸,请单击适合屏幕图标 "
。
属性工作表
单击装配体中的元素后,该元素的详细信息将显示在属性表中。 在此窗格中,您可以配置元素的属性。 属性表中提供给你的选项是针对你正在使用的元素类型的。 对于某些元素,您可以通过单击对象属性并从下拉菜单中选择属性来添加和移除属性。
单击关闭图标 "
即可关闭属性表。
组合件的行为
组合件按顺序运行策略并对 API 调用的不同上下文起作用。 生成 API 调用时,在执行组合件之前会实施安全和速率限制。 在装配过程中,可以根据可用的策略对流程进行分支、抛掷和捕捉。 信息上下文在组件中流动,被各种策略使用和更改。 除了消息,也可访问和创建其他上下文。
- 安全性和速率限制
- 先要实施安全性和速率限制,然后再执行组合件。
首先,安全性定义和 CORS 访问控制可用于验证 API 调用。 任何 API 密钥安全性定义都可用于识别预订了包含 API 的产品的应用程序。 如果安全性定义不允许访问,那么会拒绝 API 调用。
如果通过客户机标识或客户机密钥识别应用程序,那么会根据计划或调用的操作实施速率限制。
- 组合件执行顺序
- 组合件按照从最初已填充圆圈到最终未填充圆圈的顺序执行。 不过,在使用 "
if和 "operation-switch逻辑结构时,仍有分支的空间,或者在执行 "throw策略时,可以忽略剩余的程序集。消息是受到未经配置的任意策略影响的上下文。 在 API 调用开始时,信息是空的,而在 API 调用结束时,信息将被用作响应。
请求上下文包含 API 调用方发送的信息,并随所调用操作的类型以及该操作的配置而变化。 例如,GET 操作从不会具有填充的
request.body,您可以配置操作以具有request.parameters(查询参数)。 组合件中的第一个策略会对请求起作用,并产生消息的第一个实例。 如果没有策略,那么会将请求返回给调用者。 - 管理上下文
- 由于消息可能会被覆盖,因此在可能的情况下创建和引用新上下文是非常有用的,这样可以保存这些上下文并在 API 调用期间重复使用。
- 当需要执行只作用于报文的策略时,使用 "
map策略覆盖报文上下文。 - 当要使用对 API 发出的原始请求时,请使用请求上下文。
- Use the
map,invoke, andproxypolicies to create new contexts when you want to save your message.注: 创建新上下文时,除非您还映射到消息,否则将使用空对象覆盖消息。
例如,"
invoke是程序集中的第一个策略,其响应会将请求覆盖为信息。 然后,"validate策略执行该信息,"map策略将该信息保存为新的上下文,以便第二个 "invoke策略在不丢失第一个 "invoke策略输出的情况下覆盖该信息。您也可以访问消息或自定义上下文之外的上下文,但不能写入这些上下文。 有关上下文列表,请参见 "API Connect上下文变量。
- 当需要执行只作用于报文的策略时,使用 "
- 分支和 catch
- 使用逻辑结构,如 "
operation-switch或 "if,可以在满足特定条件时执行程序集的不同部分。 在组合件出现分支时,采用与完整组合件相同的方式执行该构造包含的组合件的子部分。 但上下文仍与完整的组合件共享。当执行策略时发生错误或遇到 "
throw策略而触发捕获时,程序流程的其余部分将被忽略。 通过执行的 catch 共享所有上下文,且当结束 catch 时,会完成 API 调用。 无法从 catch 返回到组合件的其余部分。