47.7. 额外选项

概述

通过提供更简单的选项,通常使用 extraOptions 选项计算或隐藏复杂的 API 参数。例如,API 方法可能会采用 POJO 选项,它可以作为 URI 中的 OVA 部分来更轻松地提供。组件可以通过添加部分作为额外选项来实现此目的,并在内部创建 OVA 参数。要完成这些额外选项的实现,您还需要覆盖 EndpointConsumer 和/或 EndpointProducer 类中的 interceptProperties 方法(请参阅 第 46.4 节 “编程模型”

语法

extraOptions 元素可使用一个或多个 extraOption 子元素定义,如下所示:

<extraOptions>
  <extraOption>
    <type>TypeName</type>
    <name>OptionName</name>
  </extraOption>
</extraOptions>

其中 TypeName 是额外选项的完全限定类型名称,option optionName 是额外 URI 选项的名称。

影响范围

如以下摘录所示,extraOptions 元素可以选择性地显示为 apis 元素的子项,/或作为 api 元素的子项:

<configuration>
  <apis>
    <api>
      <apiName>...</apiName>
      ...
      <extraOptions>...</extraOptions>
    </api>
    <extraOptions>...</extraOptions>
    ...
  </apis>
</configuration>

您可以在以下范围中定义 extraOptions 元素:

  • 作为 api 元素 的子级 ,extraOptions 仅适用于 api 元素指定的 API 类。
  • 作为 apis 元素 的子项 ,extraOptions 默认应用到所有 API 类,但可以在 api 级别上覆盖。

子元素

每个 extraOptions 元素可使用以下子元素定义:

type
指定额外选项的完全限定类型名称。
name
指定选项名称,因为它将显示在端点 URI 中。

示例

以下示例定义了一个额外的 URI 选项 customOption,它是 java.util.list<String> 类型:

<extraOptions>
  <extraOption>
    <type>java.util.List<String></type>
    <name>customOption</name>
  </extraOption>
</extraOptions>