问题标签 [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.

0 投票
2 回答
4346 浏览

java - Odata with Olingo or Odata4j

I'm in over my head.

At the broadest level, I'm trying to expose an Odata interface to an existing pool of data exposed by a service written using Mule. When my Mule service is invoked, if I detect that the URL is Odata format, I want to delegate processing down to something written in Java and then feed the response from that component back to my caller.

I found the Olingo and OData4j libraries. My problem is that these start from building a Web service. But that's too far upstream for me. I have a Web service. What I need to understand are what components I need to implement in order to pass the URL (which I have in hand) onward to an Odata parser which will, in turn, invoke a data provider.

I'm a bit lost with this technology. Can someone point me to a very basic tutorial that clearly delineates this. Or, can they give me a couple steps like: "You have to implement A, B & C and then pass your URL into C.foo()"?

I've tried the Getting Started doc for both libraries but they both start with "first we'll implement a Web service" and don't clearly delineate (to me, at least) where that leaves off and pure Odata sets in.

Thanks.

0 投票
1 回答
660 浏览

apache - 使用 Apache Olingo 获取与服务对应的模式对象列表

我正在尝试使用 Apache Olingo 库从 OData 端点读取元数据。我想获取服务中存在的模式列表。

示例代码是这样的 -

如何初始化这个“服务”变量?

0 投票
2 回答
1320 浏览

java - 在 OData Feed (olingo) 中缺少多对一关联

我按照本教程构建了一个基于 apache olingo、JPA 和 mySQL 的 OData Producer 虽然 OData Feed 中显示了多对多关联,但根本不显示多对一关联(它们的 JOIN 列也不可见)

有谁知道如何让 olingo 显示这些关联?

0 投票
1 回答
1971 浏览

authorization - 如何在 Olingo ODataServiceFactory 中获取经过身份验证的用户的 ID

我正在尝试读取调用我的 OData 服务的用户的用户 ID。

在我的 web.xml 中,OData servlet 是一个保护区

当我创建工厂以响应查询时:

我看不到可以从 ODataContext 获得已通过身份验证的用户的任何方式。如果我要使用基本身份验证 - 那么我可以只获取标头,但我没有使用基本身份验证,而是使用 OAuth2 不记名令牌(由 SAML 断言创建)。

我希望 ODataContext 为我提供对请求用户 ID 的访问权限,但没有运气。还有其他方法可以使用吗?或者我是否需要强制调用应用程序在请求标头中插入用户 ID(对我来说似乎并不理想!)

0 投票
1 回答
685 浏览

java - 使用java获取OData中entitySet中的条目数

以下链接返回客户实体集中的条目数http://services.odata.org/Northwind/Northwind.svc/Customers/ $count

如何使用java获得这个数字?

在此之后编写什么代码以将条目计数为整数?

0 投票
2 回答
7459 浏览

java - 如何从 ODATA 结果集中返回计数

我正在尝试从类似于以下的 Olingo ODATA(版本 2)结果集中获取我的记录计数:

http://services.odata.org/OData/OData.svc/Categories/ $count

上面的 url 返回 3,如果删除/$count.

我正在本地主机上工作,这个网址:

返回结果集,但localhost/odata/livingODATA/address/$count返回错误:

我试过添加一个order by,似乎没有任何帮助。

0 投票
4 回答
4633 浏览

c# - 在来自客户端的一个请求中删除所有相关的 OData 实体

以 Northwind 数据库为例,每个 Customer 都有一个 Orders 集合。我想在一个请求中删除特定客户及其所有订单之间的所有引用。

看起来我可以做到这一点(基于规范),DELETE http://services.odata.org/V4/Northwind/Northwind.svc/Customers('ANTON')/Orders但我想知道客户端库是否支持这一点。

我将 Microsoft.OData.Client 用于 C# 客户端库,将 Apache Olingo (v4) 用于 Java,并将 BreezeJS 用于 JavaScript。任何这些中的一个例子将不胜感激。

编辑:澄清我只是删除引用,而不是实际删除实体本身。

0 投票
1 回答
5270 浏览

java - Olingo - 为 OData 服务的客户端库创建强类型 POJO

我将 Apache Olingo 用作 Java SDK 的 OData 客户端,我将为 RESTful OData API 提供该客户端。在 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 库进行大量修改,这使我认为有更好的方法来做到这一点。

我正在使用 Apache Olingo 4 的开发版本,因为 OData 服务必须使用 OData 4。

我错过了什么?

0 投票
1 回答
549 浏览

odata - Olingo 贪婪 $expand

我在 Hibernate 之上使用 Olingo 1.2。

我有一个返回 250 行的请求,每行以一对多的关系链接到另一个表。

我执行 $expand 以获取子表中的所有数据,但是当我检查在数据库中执行的查询时,似乎有 251 个单独的调用正在进行,一个用于返回 250 行的主表,然后一个用于每个返回子记录的行。

查看 Olingo 代码,这种惰性方法是设计使然。

我在 Microsoft ODATA 处理器上测试了 $expand,在这种情况下他们使用了贪婪的方法。

我的问题是:如何切换 Olingo 以使用 $expand 的贪婪方法(即将加入下推到数据库中)?

0 投票
1 回答
276 浏览

java - Compile error with Java Generics and Apache Olingo 4

I’ve extended some of the base classes of Apache Olingo 4 (still in development) to allow for stronger typing. However, my use of generics is causing an error that I didn’t expect.

I have a type parameter E that extends FooODataEntity which in turn implements the ODataEntity interface. Since FooODataEntity is an ODataEntity (just more specific) I would expect this to compile with no issues. However, getEntities() has a compilation error as shown in the code below.

Also, I would expect to be able to specify List<E> as a return type for my override of getEntities() but then I get a compile error saying:

'getEntities()' in 'com.foo.restapi.client.olingo.FooEntitySet' clashes with 'getEntities()' in 'org.apache.olingo.commons.api.domain.v4.ODataEntitySet'; attempting to use incompatible return type

What am I missing here?

FooODataEntitySet:

FooODataEntity: