问题标签 [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 - 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.
apache - 使用 Apache Olingo 获取与服务对应的模式对象列表
我正在尝试使用 Apache Olingo 库从 OData 端点读取元数据。我想获取服务中存在的模式列表。
示例代码是这样的 -
如何初始化这个“服务”变量?
java - 在 OData Feed (olingo) 中缺少多对一关联
我按照本教程构建了一个基于 apache olingo、JPA 和 mySQL 的 OData Producer 虽然 OData Feed 中显示了多对多关联,但根本不显示多对一关联(它们的 JOIN 列也不可见)
有谁知道如何让 olingo 显示这些关联?
authorization - 如何在 Olingo ODataServiceFactory 中获取经过身份验证的用户的 ID
我正在尝试读取调用我的 OData 服务的用户的用户 ID。
在我的 web.xml 中,OData servlet 是一个保护区
当我创建工厂以响应查询时:
我看不到可以从 ODataContext 获得已通过身份验证的用户的任何方式。如果我要使用基本身份验证 - 那么我可以只获取标头,但我没有使用基本身份验证,而是使用 OAuth2 不记名令牌(由 SAML 断言创建)。
我希望 ODataContext 为我提供对请求用户 ID 的访问权限,但没有运气。还有其他方法可以使用吗?或者我是否需要强制调用应用程序在请求标头中插入用户 ID(对我来说似乎并不理想!)
java - 使用java获取OData中entitySet中的条目数
以下链接返回客户实体集中的条目数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
.
我正在本地主机上工作,这个网址:
返回结果集,但localhost/odata/livingODATA/address/$count
返回错误:
我试过添加一个order by
,似乎没有任何帮助。
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。任何这些中的一个例子将不胜感激。
编辑:澄清我只是删除引用,而不是实际删除实体本身。
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。
我错过了什么?
odata - Olingo 贪婪 $expand
我在 Hibernate 之上使用 Olingo 1.2。
我有一个返回 250 行的请求,每行以一对多的关系链接到另一个表。
我执行 $expand 以获取子表中的所有数据,但是当我检查在数据库中执行的查询时,似乎有 251 个单独的调用正在进行,一个用于返回 250 行的主表,然后一个用于每个返回子记录的行。
查看 Olingo 代码,这种惰性方法是设计使然。
我在 Microsoft ODATA 处理器上测试了 $expand,在这种情况下他们使用了贪婪的方法。
我的问题是:如何切换 Olingo 以使用 $expand 的贪婪方法(即将加入下推到数据库中)?
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: