Show Table of Contents
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
apielement—theextraOptionsapply only to the API class specified by theapielement. - As a child of the
apiselement—theextraOptionsapply to all API classes by default, but can be overridden at theapilevel.
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>
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.