OpenAPI 规范的 IBM 扩展

OpenAPI 定义文件中使用 x-ibm-configuration 对象来添加特定于 IBM® API Connect的扩展。

x-ibm-configuration 扩展具有以下结构:

x-ibm-configuration:
  enforced: enforced_boolean
  forceHttp500ForSoap11: forceHttp500ForSoap11_boolean
  compile-json-schemas: compile_json_schemas_boolean
  phase: Phase
  testable: test_boolean
  cors:
    enabled: cors_boolean
  buffering: buffering_boolean
  activity-log:
      activity_logging_extension
  assembly:
    execute:
      - assembly_component
  gateway: gateway_type
  type: api_type
  properties:
      properties_extension
  catalogs:
      catalogs_extension

下表列出了 API Connect所使用的各种扩展,它们是否是必需的,它们的使用和行为的描述以及它们的类型。

表 1. IBM 扩展
扩展 必需 描述 Type
phase False 使用 phase 扩展以描述 API 的成熟期。 它可接受以下值:
  • identified:此 API 处于早期的初步设计阶段,尚未完全设计或实施。
  • specified:此 API 已完成设计并通过了内部里程碑,但尚未实施。
  • realized:此 API 处于实施阶段。
字符串
testable False 使用 testable 扩展来指定是否可以使用 Developer Portal中的测试工具来测试 API。 布尔值
enforced False 使用 enforced 扩展来指定是否使用 API Connect 网关来实施 API。
  • true 指示 API Connect 网关用于实施 API。
  • false 指示 API Connect 网关未用于实施 API。
布尔值
cors False 使用 cors 扩展以指定是否将 CORS 访问控制用于 API。 扩展具有一个布尔值的 enabled 字段。 对象(具有单个布尔值的字段)
DataPower API Gateway
onlyactivity-log False activity-log 扩展可用于为分析中存储的 API 活动配置日志记录首选项。 您指定的首选项将覆盖有关收集和存储 API 活动详细信息的缺省设置。 对象
assembly False 使用 assembly 扩展以描述策略的应用程序和 API 的逻辑。 它包含 execute 字段,其中包含将按顺序应用的一组策略。 它可包含一个 catch 字段,其中包含要捕获的一组错误案例。

有关使用 execute 字段的信息,请参阅 执行

有关使用 catch 字段的信息,请参阅 catch

对象
gateway False 使用 gateway 扩展以指定想要使用的网关的类型。 如果您使用的是 DataPower® Gateway (v5 compatible)DataPower API Gateway,那么必须将其包括在内并采用下列其中一个值:
  • datapower-gateway (DataPower Gateway (v5 compatible))
  • datapower-api-gateway (DataPower API Gateway)

有关网关类型的信息,请参阅 API Connect 网关类型

字符串
type False type 扩展采用以下值之一:
  • rest
  • wsdl
 
properties False 使用 properties 扩展来定义要在 API 中使用的属性。 对象 (properties)
catalogs False 使用 catalogs 扩展来针对 properties 扩展中定义的属性定义特定于目录的值。 对象 (catalogs)
DataPower API Gateway
onlyforceHttp500ForSoap11 False 在 SOAP 1.1 API 上发生错误时,使用 forceHttp500ForSoap11 扩展来强制使用 500 响应代码。 此属性仅适用于包含 APAR IT46043的 DataPower 修订包。 布尔值
compile-json-schemas False 使用此扩展可在配置部署过程中启用 JSON 模式预编译。 设置为 "true "时,JSON 模式会在应用新配置时进行编译和缓存,确保在处理第一条消息时编译就绪并可用。 布尔值
buffering False 使用此扩展可控制是否在处理 API 请求和响应之前对其进行缓冲。 它可以启用 DataPower message-buffering 命令
  • true缓冲区:在处理 API 请求和响应之前进行缓冲。 API 请求和响应以二进制大对象 (BLOB) 的形式读取。
  • false注意:在处理 API 请求和响应之前不要缓冲。 API 的请求和响应都是流式的。 只有异步 API 调用才能读取流数据。 如果报文处理需要在有效载荷层解析数据,则会执行缓冲以捕获数据。 此设置是缺省值。
布尔值

以下示例显示了API的 x-ibm-extension 部分,该部分由 API Connect 强制执行,处于已实现状态,可通过开发者门户中的测试工具进行测试,启用了CORS访问控制,并具有一个简单的程序集,用于调用 URL ,然后从请求或响应中删除一个字段。

x-ibm-configuration:
  enforced: true
  phase: realized
  testable: true
  cors:
    enabled: true
  assembly:
    execute:
      - invoke:
          title: Example Invoke
          target-url: 'https://example.com/api'
          description: Example description
      - redact:
        actions:
          - action: redact
            from: 
              - request
              - response
            path: //*[@name='secondaryAddress']/*[@name='streetAddress']
  properties:
    ID:
      value: 1234
      description: An ID to be used for validating.
      encoded: false
  catalogs:
    Sandbox:
      properties:
        ID: 5678