第121章 Olingo2


Olingo2 コンポーネント

Camel 2.14 から利用可能
Olingo2 コンポーネントは Apache Olingo バージョン 2.0 API を使用して OData 2.0 準拠のサービスと対話します。数多くの一般的な商用およびエンタープライズベンダーおよび製品が OData プロトコルをサポートします。サポートする製品のサンプルリストは、OData の Web サイト を参照してください。
Olingo2 コンポーネントは、カスタムおよび OData システムクエリーパラメーターを使用したフィード、デルタフィード、エンティティー、単純および複雑なプロパティー、リンク、カウントをサポートします。エンティティー、プロパティー、および関連リンクの更新をサポートします。また、単一の OData バッチ操作としてクエリーおよび変更リクエストの送信もサポートします。
コンポーネントは、OData サービスコネクションの HTTP 接続パラメーターおよびヘッダーの設定をサポートします。これにより、ターゲット OData サービスによって必要に応じて SSL、OAuth2.0 などを使用できます。
TLS (Transport Layer Security)を使用するように camel-olingo2 コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
	<dependency>
    	<groupId>org.apache.camel</groupId>
    	<artifactId>camel-olingo2</artifactId>
    	<version>${camel-version}</version>
	</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

olingo2://endpoint/<resource-path>?[options]
Copy to Clipboard Toggle word wrap

Olingo2Component

Olingo2 コンポーネントは、以下のオプションで設定できます。これらのオプションは、org.apache.camel.component.olingo2.Olingo2Configuration タイプのコンポーネントの Bean プロパティー configuration を使用して提供できます。
Expand
オプション
タイプ
説明
serviceUri
文字列
ターゲット OData サービスベース URI (例: http://services.odata.org/OData/OData.svc
contentType
文字列
Content-Type ヘッダーの値を使用して JSON または XML メッセージ形式を指定できます。デフォルトは application/json;charset=utf-8です。
connectTimeout
int
HTTP 接続作成のタイムアウト(ミリ秒単位)。デフォルトは 30,000 (30 秒)です。
socketTimeout
int
HTTP 要求のタイムアウト(ミリ秒単位)。デフォルトは 30,000 (30 秒)です。
httpHeaders
java.util.Map<String, String>
すべてのリクエストに挿入するカスタム HTTP ヘッダー。これには OAuth トークンが含まれる場合があります。
proxy
org.apache.http.HttpHost
HTTP プロキシーサーバーの設定
sslContext
javax.net.ssl.SSLContext
HTTP SSL 設定
httpAsyncClientBuilder
org.apache.http.impl.nio.client.HttpAsyncClientBuilder
より複雑な HTTP クライアント設定のカスタム HTTP 非同期クライアントビルダーは、connectionTimeout、socketTimeout、proxy、および sslContext を上書きします。socketTimeout はビルダーで指定する 必要 があります。指定しないと、OData リクエストが永久にブロックされる可能性があることに注意してください。

プロデューサーエンドポイント

プロデューサーエンドポイントは、次に一覧表示されるエンドポイント名とオプションを使用できます。プロデューサーエンドポイントは、Camel Exchange In メッセージに含まれる値を持つ endpoint オプションの名前が含まれる必要がある特別なオプション inBody を使用することもできます。inBody オプションのデフォルトは、このオプションを取るエンドポイントの data に設定されます。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelOlingo2.<option> の形式で指定する必要があります。inBody オプションはメッセージヘッダーを上書きすることに注意してください。つまり、エンドポイントオプション inBody=optionCamelOlingo2.option ヘッダーを上書きすることに注意してください。さらに、クエリーパラメーターを指定することもできます。
resourcePath オプションは、URI パスの一部として URI に指定されるか、エンドポイントオプション ?resourcePath=<resource-path> として指定するか、ヘッダー値 CamelOlingo2.resourcePath として指定できることに注意してください。OData エンティティーキー述語はリソースパスの一部にすることができます(例: Manufacturer s ('1')、'1 ' はキー述語です。または、リソースパス Manufacturers および keyPredicate オプション '1' で個別に指定できます
Expand
エンドポイント
オプション
HTTP メソッド
結果ボディーのタイプ
batch
data
POST with multipart/mixed batch request java.util.List&lt;org.apache.camel.component.olingo2.api.batch.Olingo2BatchResponse>
create
data、resourcePath
POST org.apache.olingo.odata2.api.ep.entry.ODataEntry for new entries org.apache.olingo.odata2.api.commons.HttpStatusCodes for other OData resources
delete
resourcePath
DELETE org.apache.olingo.odata2.api.commons.HttpStatusCodes
merge
data、resourcePath
MERGE org.apache.olingo.odata2.api.commons.HttpStatusCodes
patch
data、resourcePath
PATCH org.apache.olingo.odata2.api.commons.HttpStatusCodes
read
queryParams, resourcePath
GET Depends on OData resource being queried as described next
update
data、resourcePath
PUT org.apache.olingo.odata2.api.commons.HttpStatusCodes

OData リソースタイプマッピング

データオプションの 読み取り エンドポイントおよびデータタイプの結果は、クエリー、作成、または変更を行う OData リソースによって異なります。
Expand
OData リソースタイプ
resourcePath および keyPredicate からのリソース URI
in または Out Body タイプ
エンティティーデータモデル
$metadata
org.apache.olingo.odata2.api.edm.Edm
サービスドキュメント
/
org.apache.olingo.odata2.api.servicedocument.ServiceDocument
OData フィード
<entity-set>
org.apache.olingo.odata2.api.ep.feed.ODataFeed
OData エントリー
<entity-set>(<key-predicate>)
org.apache.olingo.odata2.api.ep.entry.ODataEntry Out body (応答)の場合、java.util.Map&lt;String, Object>In body (要求)です。
単純なプロパティー
<entity-set>(<key-predicate>)/<simple-property>
Appropriate Java data type as described by <link xlink:href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html" >Olingo EdmProperty</link>
単純なプロパティー値
<entity-set>(<key-predicate>)/<simple-property>/$value
Appropriate Java data type as described by <link xlink:href="http://olingo.apache.org/javadoc/odata2/index.html?org/apache/olingo/odata2/api/edm/class-use/EdmProperty.html" >Olingo EdmProperty</link>
複雑なプロパティー
<entity-set>(<key-predicate>)/<complex-property>
java.util.Map&lt;String, Object>
ゼロまたは 1 つの関連付けリンク
<entity-set>(<key-predicate>/$link/<one-to-one-entity-set-property>
String for response java.util.Map&lt;String, Object> with key property names and values for request
リンクの 0 個または多数
<entity-set>(<key-predicate>/$link/<one-to-many-entity-set-property>
java.util.List&lt;String> for response java.util.List&lt;java.util.Map&lt;String, Object>> containing list of key property names and values for request
Count
<resource-uri>/$count
java.lang.Long

URI オプション

エンドポイント URI またはメッセージヘッダーのいずれかで queryParams に値が指定されていない場合、これは null であると想定されます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
Expand
名前
タイプ
説明
data
Object
OData リソースの作成または変更に使用される適切なタイプを持つデータ
keyPredicate
String
パラメーター化された OData リソースエンドポイントを作成するためのキー述語。キー述語の値がヘッダーに動的に提供される作成/更新操作に役立ちます。
queryParams
java.util.Map&lt;String, String>
OData システムオプションおよびカスタムクエリーオプション。詳細は OData 2.0 URI Conventions を参照してください。
resourcePath
String
OData リソースパス(キー述語が含まれるか、または含まれない場合あり)
*
String
その他の URI オプションはクエリーパラメーターとして扱われ、クエリーパラメーターマップに追加され、queryParams オプションのエントリーを上書きします(これも指定されている場合)。

コンシューマーエンドポイント

コンシューマーエンドポイントとして使用できる read エンドポイントのみです。コンシューマーエンドポイントは、consumer. 接頭辞が付い た Scheduled Poll Consumer オプション を使用して、エンドポイントの呼び出しをスケジュールできます。デフォルトでは、配列またはコレクションを返すコンシューマーエンドポイントは、要素ごとにエクスチェンジを 1 つ生成し、それらのルートはエクスチェンジごとに 1 回実行されます。この動作は、エンドポイントプロパティー consumer.splitResult=false を設定して無効にできます。

メッセージヘッダー

URI オプションは、CamelOlingo2. 接頭辞が付いたプロデューサーエンドポイントのメッセージヘッダーで指定できます。

メッセージボディー

すべての結果メッセージ本文は、Olingo2Component によって使用される基盤となる Apache Olingo 2.0 API によって提供されるオブジェクトを使用します。プロデューサーエンドポイントは、inBody エンドポイント URI パラメーターに受信メッセージボディーのオプション名を指定できます。配列またはコレクションを返すエンドポイントでは、consumer.splitResultfalse に設定されていない限り、コンシューマーエンドポイントはすべての要素を個別のメッセージにマップします。

ユースケース

以下のルートは、Mufacturer フィードから上位 5 つのエントリーを昇順で読み取ります。
from("direct:...")
    .setHeader("CamelOlingo2.$top","5")
    .to("olingo2://read/Manufacturers?orderBy=Name%20asc");
Copy to Clipboard Toggle word wrap
以下のルートは、受信 id ヘッダーの key プロパティーの値を使用して Manufacturer エントリーを読み取ります。
from("direct:...")
    .setHeader("CamelOlingo2.keyPredicate", header("id"))
    .to("olingo2://read/Manufacturers");
Copy to Clipboard Toggle word wrap
以下のルートは、ボディーメッセージの java.util.Map<String, Object> を使用して Manufacturer エントリーを作成します。
from("direct:...")
    .to("olingo2://create/Manufacturers");
Copy to Clipboard Toggle word wrap
以下のルートは、30 秒ごとに Manufacturer デルタフィード をポーリングします。Bean blah は Bean paramsBean を更新し、ODataDeltaFeed の結果で返された値で更新された !deltatoken プロパティーを追加します。最初のデルタトークンが不明なため、コンシューマーエンドポイントは最初に ODataFeed 値を生成し、後続のポーリングで ODataDeltaFeed を生成します。
from("olingo2://read/Manufacturers?queryParams=#paramsBean&consumer.timeUnit=SECONDS&consumer.delay=30")
    .to("bean:blah");
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat