47.7. 额外选项
概述
extraOptions
选项通常用于通过提供更简单的选项来计算或隐藏复杂的 API 参数。例如,API 方法可能会使用 POJO 选项,它可作为 URI 中的 POJO 的部分更容易提供。组件可以通过添加部分作为额外选项并在内部创建 POJO 参数来实现此目的。要完成这些额外选项的实现,您还需要覆盖 EndpointConsumer
和/或 EndpointProducer
类中的 interceptProperties
方法(请参阅 第 46.4 节 “编程模型”)。
语法
extraOptions
元素可使用一个或多个 extraOption
子元素定义,如下所示:
<extraOptions> <extraOption> <type>TypeName</type> <name>OptionName</name> </extraOption> </extraOptions>
其中 TypeName
是额外选项的完全限定域名,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>