47.7. 额外选项

概述

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

语法

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

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

其中 TypeName 是额外选项的完全限定域名,而 options Name 是额外 URI 选项的名称。

影响范围

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

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

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

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

子元素

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

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

Example

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

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