問題タブ [olingo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Olingo または Odata4j を使用した Odata
私は頭の上にいます。
最も広いレベルでは、Mule を使用して記述されたサービスによって公開された既存のデータ プールに Odata インターフェイスを公開しようとしています。Mule サービスが呼び出されたときに、URL が Odata 形式であることを検出した場合は、処理を Java で記述されたものに委任し、そのコンポーネントからの応答を呼び出し元に送り返したいと考えています。
Olingo および OData4j ライブラリを見つけました。私の問題は、これらが Web サービスの構築から始まることです。しかし、それは私にとってはあまりにも上流です。私は Web サービスを持っています。理解する必要があるのは、(手元にある) URL を Odata パーサーに渡すためにどのコンポーネントを実装する必要があるかです。Odata パーサーはデータ プロバイダーを呼び出します。
私はこの技術に少し戸惑っています。誰かがこれを明確に説明する非常に基本的なチュートリアルを教えてくれますか? または、「A、B、および C を実装してから、URL を C.foo() に渡す必要があります」のようないくつかの手順を教えてもらえますか?
私は両方のライブラリの入門ドキュメントを試しましたが、どちらも「最初にWebサービスを実装します」から始まり、(少なくとも私には)それがどこで終了し、純粋なOdataが設定されるかを明確に示していません.
ありがとう。
apache - Apache Olingo を使用してサービスに対応するスキーマ オブジェクトのリストを取得する
Apache Olingo ライブラリを使用して OData エンドポイントからメタデータを読み取ろうとしています。サービスにあるスキーマのリストを取得したいと考えています。
サンプルコードは次のようになります-
この「サービス」変数を初期化するにはどうすればよいですか?
java - javaを使用してODataのentitySetのエントリ数を取得する
次のリンクは、Customers エンティティ セットのエントリ数を返しますhttp://services.odata.org/Northwind/Northwind.svc/Customers/ $count
Javaを使用してこの番号を取得するには?
エントリの数を整数として取得するには、この後に何をコーディングすればよいでしょうか?
java - ODATA 結果セットからカウントを返す方法
以下のような Olingo ODATA (バージョン 2) の結果セットからレコードの数を取得しようとしています。
http://services.odata.org/OData/OData.svc/Categories/ $count
上記の URL は 3 を返します/$count
。
私はこのURLのローカルホストで作業しています:
結果セットをlocalhost/odata/livingODATA/address/$count
返しますが、エラーを返します:
を追加しようとしましたがorder by
、何も役に立たないようです。
c# - クライアントからの 1 回の要求で、関連するすべての OData エンティティを削除します
例として Northwind データベースを使用すると、各 Customer には Orders のコレクションがあります。特定の顧客とそのすべての注文の間のすべての参照を 1 回のリクエストで削除したいと考えています。
(仕様に基づいて)これを実行できるように見えますDELETE http://services.odata.org/V4/Northwind/Northwind.svc/Customers('ANTON')/Orders
が、クライアントライブラリがこれをサポートしているかどうか疑問に思っています。
C# クライアント ライブラリには Microsoft.OData.Client、Java には Apache Olingo (v4)、JavaScript には BreezeJS を使用しています。これらのいずれかの例は非常に高く評価されます。
編集:エンティティ自体を実際に削除するのではなく、参照を削除するだけであることを明確にしました。
java - Olingo - OData サービスのクライアント ライブラリ用に厳密に型指定された POJO を作成する
RESTful OData API に提供する Java SDK の OData クライアントとして Apache Olingo を使用しています。SDK では、OData エンティティを表す厳密に型指定されたクラスを使用できるようにしたいと考えています。これを簡単に実装するのに苦労しているため、ここで別の戦略が欠けているように感じます。
Olingo の方法はODataClient
、API とやり取りするための便利なメソッドをユーザーに提供するオブジェクトを取得することのようです。私のODataClient
リクエストを構築するために、一連のファクトリメソッドを使用しています。たとえば、これはCustomers
Northwind サンプル OData サービスから取得するために使用したコードです。必要なクラスclient
のインスタンスです。ODataClient
イテレータ (すなわち ) から強く型付けされたエンティティで終わりたいと思いますCustomer customer = iterator.next()
。ただし、実際にそれを行う方法はわかりません。
拡張して次のようなキャストを実行しようとするCustomer
クラスを作成すると、イテレータ内のオブジェクトは単なるオブジェクトであり、サブクラスについて何も知らないため、が得られます。ODataEntity
Customer customer = (Customer) iterator.next()
ClassCastException
ODataEntity
Customer
次に考えたのはジェネリックを導入することでしたが、そうすると Olingo ライブラリにかなりの量の変更が必要になり、これを行うためのより良い方法があると思いました。
OData サービスは OData 4 を使用する必要があるため、Apache Olingo 4 の開発バージョンを使用しています。
私は何が欠けていますか?
odata - 貪欲なオリンゴ $expand
Hibernateの上でOlingo 1.2を使用しています。
250 行を返すリクエストがあり、各行は 1 対多の関係で別のテーブルにリンクしています。
$expand を実行して子テーブルのすべてのデータを取得しましたが、データベースで実行されたクエリを調べると、251 の個別の呼び出しが行われているように見えます。1 つは 250 行を返すマスター テーブル用で、次に各テーブル用に 1 つずつです。子レコードを返す行。
Olingo コードを見ると、この怠惰なアプローチは設計によるものです。
私は Microsoft ODATA プロセッサで $expand をテストしましたが、この場合、彼らは貪欲なアプローチを使用しています。
私の質問は次のとおりです: $expand に貪欲なアプローチを使用するように Olingo を切り替えるにはどうすればよいですか (つまり、結合をデータベースにプッシュする)?