标签: olingo

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

我正在使用Apache Olingo作为Java SDK的OData客户端,我将为RESTful OData API提供.在SDK中,我希望能够使用强类型类来表示OData实体.我很难轻松实现这一点,因此我觉得我在这里错过了一个不同的策略.

Olingo的方式似乎是获取一个ODataClient对象,该对象为用户提供了许多与API交互的有用方法.该ODataClient用一堆工厂方法来构建我的要求.例如,这是我用来Customers从Northwind示例OData服务获取的代码.client是必要ODataClient类的一个实例.

String serviceRoot = "http://services.odata.org/V4/Northwind/Northwind.svc";
URI customersUri = client.newURIBuilder(serviceRoot)
        .appendEntitySetSegment("Customers").build();
ODataRetrieveResponse<ODataEntitySetIterator<ODataEntitySet, ODataEntity>> response =
        client.getRetrieveRequestFactory().getEntitySetIteratorRequest(customersUri).execute();

if (response.getStatusCode() >= 400) {
    log("Error");
    return;
}

ODataEntitySetIterator<ODataEntitySet, ODataEntity> iterator = response.getBody();

while (iterator.hasNext()) {
    ODataEntity customer = iterator.next();
    log(customer.getId().toString());
}
Run Code Online (Sandbox Code Playgroud)

我想从迭代器(即Customer customer = iterator.next())中得到一个强类型实体.但是,我不确定如何实际做到这一点.

如果我创建一个Customer扩展ODataEntity并尝试执行转换的类,Customer customer = (Customer) iterator.next()那么我得到一个,ClassCastException因为迭代器中的ODataEntity对象只是对象而Customer对子类一无所知.

我的下一个想法是引入泛型,但这样做需要对Olingo库进行大量修改,这让我觉得有更好的方法来做到这一点.

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

java odata olingo

9
推荐指数
1
解决办法
3966
查看次数

Apache Olingo(Java OData)Swagger API框架集成

我在Tomcat中有一个webapp,它通过Apache Olingo公开OData端点.我在网上搜索了诸如swagger,olingo,integration等关键字但没有找到任何答案.

有一些关于.NET OData Swagger集成的信息,但我并不感兴趣.

请注意,我对Olingo和Swagger集成感兴趣,而不是Swaggersocket集成.

有谁知道Swagger是否支持Olingo集成?

编辑:Swagger UI是否与Olingo集成无缝协作?

swagger olingo

8
推荐指数
0
解决办法
517
查看次数

如何使用Olingo或SDL OData Framework在Java中使用OData4服务

我需要从Java使用OData4服务,并且基于OData网站上的框架列表,两个选项是Olingo或SDL Odata Framework.我的问题是,这两个项目的文档都专注于编写一个不消费的服务.Olingo站点链接到2014年的博客文章,该博客文章与当前版本不兼容API,我在SDL github页面上找不到任何内容.

如果有人可以给我一个简单的POST/GET示例,使用一个很好的POJO对象模型.

我有限的理解是OData将有关实际对象模型的任何信息从编译时移动到客户端上的运行时.我很乐意忽略这个和针对固定对象模型的代码,因为我们使用的服务不会改变.

java odata olingo

6
推荐指数
1
解决办法
5393
查看次数

Odata与Olingo或Odata4j

我在我脑海里.

在最广泛的层面上,我试图将Odata接口暴露给由使用Mule编写的服务公开的现有数据池.当我调用我的Mule服务时,如果我检测到该URL是Odata格式,我想将处理委托给用Java编写的东西,然后将该组件的响应反馈给我的调用者.

我找到了Olingo和OData4j库.我的问题是,这些从构建Web服务开始.但这对我来说太过分了.我有一个Web服务.我需要了解的是我需要实现哪些组件才能将URL(我手头上的)传递给Odata解析器,而Odata解析器将调用数据提供程序.

我对这项技术感到有些失落.有人能指出我一个非常基本的教程,清楚地描述了这一点.或者,他们可以给我几个步骤:"你必须实现A,B和C,然后将你的URL传递给C.foo()"?

我已经尝试了两个库的入门文档,但它们都以"首先我们将实现一个Web服务"开头,并且没有清楚地描述(至少对我来说)离开的地方和纯粹的Odata设置.

谢谢.

java mule odata odata4j olingo

5
推荐指数
1
解决办法
4181
查看次数

如何在apache olingo v4 Web服务中实现过滤和分页

我是apache olingo Web服务的新手。在过去的两周里,我为实现我的服务实施过滤和分页而罢工。我使用的是最新的olingo版本4。请帮助我提供示例代码。它将对我有更多用处。

以下是我的情况,

  1. 我从现有的Web服务获取数据作为XML,然后使用JAXB解析XML,使其成为olingo Web服务中的实体列表。

    在这里我如何应用过滤器。如果我的URL中有$ filter,则它会引发找不到页面的异常。如果我删除那意味着它将工作并给出完整的结果。

    我的问题是如何在XML字符串中应用olingo过滤器或如何在方法中将其应用于实体列表中。请给我一些示例代码。

  2. 我需要对响应JSON进行分页。我需要将JSON值限制为每页25个,并且还需要这样的下一页URL(对于25到50)。如何也实现这一点。

我克服了很多博客,但对我没有用。在这里 https://templth.wordpress.com/2015/04/03/handling-odata-queries-with-elasticsearch/

在这个博客中,他们没有用完整的代码进行解释。我的问题是,我正在从现有的Web服务获取数据作为XML字符串并对其进行解析,并将其包含在实体列表中。

我也推荐这个博客

https://olingo.apache.org/doc/odata2/tutorials/Olingo_Tutorial_AdvancedRead_FilterVisitor.html

在此博客中,他们还讲述了如何构造查询。我的问题是如何在Web服务中从ODATA实现$ filter,$ select等,以及如何从xml字符串或实体列表中进行过滤

请给我推荐示例代码。谢谢。

java odata olingo

5
推荐指数
1
解决办法
1561
查看次数

将 Odata 查询传输到 SQL 语句 java

我一直在阅读 Olingo v4 服务器教程,我所看到的只是带有硬编码数据的示例。是否有将 v4 代码与某种类型的 sql 后端一起使用的示例。从我读过的内容来看,JPA 在 v4 中还不是一个选项。是否期望解析查询并将其转换为我将在我的实现中执行的 sql 语句?这背后是否有任何自动化?

更新:我一直在寻找一个名为JINQ的新库,这看起来很有希望。有没有人知道如何将这样的东西插入 Olingo v4?

java odata olingo

5
推荐指数
1
解决办法
881
查看次数

如何在 Olingo OData 服务文档中包含完整的元数据 URI?

我按照 Apache Lingo 教程中概述的步骤创建了一个示例 OData 服务。

客户收到的默认服务文档是:

{
  "@odata.context" : "$metadata",
  "value" : [
  {
    "name" : "Products",
    "url" : "Products"
  } ]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法配置 Olingo 以在文档中包含完整的元数据 uri?具体来说,假设服务正在http://localhost:8080/DemoService/DemoService.svc/运行,我希望服务文档如下:

{
  "@odata.context" : "http://localhost:8080/DemoService/DemoService.svc$metadata",
  "value" : [
  {
    "name" : "Products",
    "url" : "Products"
  } ]
}
Run Code Online (Sandbox Code Playgroud)

odata olingo

5
推荐指数
1
解决办法
1503
查看次数

如何在 olingo 中创建复杂类型集合

我尝试按照 olingo 的以下文档创建 odata 服务。

注释处理器

但是我无法创建一个具有类型为 ComplexType 列表的属性的实体。任何人都有这样的例子。或者只是不支持?

odata olingo

3
推荐指数
1
解决办法
4082
查看次数

如何使用Olingo(Odata)进行HTTP身份验证的服务调用

我有一个受基本HTTP身份验证保护的Web服务访问。

如何设置ODataClient将身份验证发送到Web服务?

ODataClient client = ODataClientFactory.getClient();
String iCrmServiceRoot = "https://example.dev/Authenticated/Service";

ODataServiceDocumentRequest odClientReq = 
    client.getRetrieveRequestFactory().getServiceDocumentRequest(iCrmServiceRoot);
Run Code Online (Sandbox Code Playgroud)

java http-authentication odata olingo

3
推荐指数
1
解决办法
2228
查看次数

在客户端的一个请求中删除所有相关的OData实体

以罗斯文(Northwind)数据库为例,每个客户都有一组订单。我只想在一个请求中删除特定客户与其所有订单之间的所有引用。

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

我正在将Microsoft.OData.Client用于C#客户端库,将Apache Olingo(v4)用于Java,将BreezeJS用于JavaScript。任何这些示例都将不胜感激。

编辑:阐明我只是删除引用,而不是实际上删除实体本身。

c# odata breeze olingo

2
推荐指数
1
解决办法
3474
查看次数

子级的 OData 过滤器并返回父级

我正在开发一个由 OData 服务支持的搜索功能。它将返回一个或一组标头对象作为结果。我们需要搜索的许多字段并不在 Header 对象中。它们仅存在于子对象(导航属性)中。能够对子字段执行 OData 搜索并仍然返回父对象列表的正确方法是什么。

这与我期望能够在标准 SQL 中作为“存在”查询执行的操作类似。

我在我的项目中使用 Java - Apache Olingo,但我相信这是一个一般的 OData 问题。

odata olingo

2
推荐指数
1
解决办法
1万
查看次数

Apache Olingo Java 库是否支持 OData V3?

我需要从 Java 使用 OData V3 服务。

Apache Olingo 是 OData 唯一活跃的开源项目。但它似乎不支持 OData V3。我用谷歌搜索并发现了一些关于 Olingo V4 实际上通过方法支持 OData V3 的讨论,例如

ODataClientFactory.getEdmEnabledClientV3(...)
Run Code Online (Sandbox Code Playgroud)

但是我在当前的 Olingo Java 库中找不到这样的方法。

OData V3 的另外两个 Java 库似乎处于休眠状态:

  • ODataJClient,其 github 页面说它现在是 Olingo 项目的一部分。
  • odata4j

Apache Olingo 是否支持 OData V3?

java odata olingo

2
推荐指数
1
解决办法
708
查看次数

带有 Olingo V4 和 MySQL 数据库连接的 OData 服务

我正在遵循一些示例,在该示例中,我们可以使用 Java(maven 项目)中的Olingo构建OData 服务。提供的示例没有任何数据库交互。他们正在使用一些Storage.class,其中包含硬编码数据。

您可以在git上找到示例代码。请参考p0_all提供的网址中的示例。

有谁知道我们如何将 git 示例与某些数据库连接并进一步执行 CRUD 操作

请帮我提供一些好的例子或概念。

提前谢谢你。

java git maven olingo

2
推荐指数
1
解决办法
2007
查看次数

标签 统计

olingo ×13

odata ×11

java ×8

breeze ×1

c# ×1

git ×1

http-authentication ×1

maven ×1

mule ×1

odata4j ×1

swagger ×1