55.7. Extra Options
Overview
The
extraOptions
options are usually used to either compute or hide complex API parameters by providing simpler options instead. For example, the API method might take a POJO option, that could be provided more easily as parts of the POJO in the URI. The component could do this by adding the parts as extra options, and creating the POJO parameter internally. To complete the implementation of these extra options, you also need to override the interceptProperties
method in the EndpointConsumer
and/or EndpointProducer
classes (see Section 54.4, “Programming Model”).
Syntax
The
extraOptions
element can be defined with one or more extraOption
child elements, as follows:
<extraOptions> <extraOption> <type>TypeName</type> <name>OptionName</name> </extraOption> </extraOptions>
Where
TypeName
is the fully-qualified type name of the extra option and OptionName
is the name of the extra URI option.
Scope
As shown in the following extract, the
extraOptions
element can optionally appear as a child of the apis
element and/or as a child of api
elements:
<configuration> <apis> <api> <apiName>...</apiName> ... <extraOptions>...</extraOptions> </api> <extraOptions>...</extraOptions> ... </apis> </configuration>
You can define the
extraOptions
element at the following scopes:
- As a child of an
api
element—theextraOptions
apply only to the API class specified by theapi
element. - As a child of the
apis
element—theextraOptions
apply to all API classes by default, but can be overridden at theapi
level.
Child elements
Each
extraOptions
element can be defined with the following child elements:
type
- Specifies the fully-qualified type name of the extra option.
name
- Specifies the option name, as it would appear in an endpoint URI.
Example
The following example defines an extra URI option,
customOption
, which is of java.util.list<String>
type:
<extraOptions> <extraOption> <type>java.util.List<String></type> <name>customOption</name> </extraOption> </extraOptions>