47.7. 追加オプション

概要

extraOptions オプションは通常より簡単なオプションを提供することで、複雑な API パラメーターを計算または非表示するために使用されます。たとえば、API メソッドには POJO オプションが使用される場合がありまが、これは URI 内の POJO の一部としてより簡単に提供することができます。コンポーネントは、パーツを追加オプションとして付与し、内部で POJO パラメーターを作成することでこれを行うことができます。これらの追加オプションの実装を完了するには、EndpointConsumerEndpointProducer クラスで interceptProperties メソッドをオーバーライドする必要もあります (「プログラミングモデル」 を参照)。

構文

ExtraOptions 要素は、以下のように 1 つ以上の 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 要素の子として: extraOptionsapi 要素で指定された 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>