47.7. 追加オプション
概要
extraOptions オプションは通常より簡単なオプションを提供することで、複雑な API パラメーターを計算または非表示するために使用されます。たとえば、API メソッドには POJO オプションが使用される場合がありまが、これは URI 内の POJO の一部としてより簡単に提供することができます。コンポーネントは、パーツを追加オプションとして付与し、内部で POJO パラメーターを作成することでこれを行うことができます。これらの追加オプションの実装を完了するには、EndpointConsumer や EndpointProducer クラスで interceptProperties メソッドをオーバーライドする必要もあります (「プログラミングモデル」 を参照)。
構文
ExtraOptions 要素は、以下のように 1 つ以上の extraOption 子要素で定義できます。
<extraOptions>
<extraOption>
<type>TypeName</type>
<name>OptionName</name>
</extraOption>
</extraOptions>
TypeName は追加オプションの完全修飾型名であり、OptionName は追加 URI オプションの名前です。
Scope
以下の抜粋で示されているように、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 に表示されるオプション名を指定します。
例
以下の例は、java.util.list<String> タイプの追加の URI オプションである customOption を定義します。
<extraOptions>
<extraOption>
<type>java.util.List<String></type>
<name>customOption</name>
</extraOption>
</extraOptions>