gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:18 25 4
gpt4 key购买 nike

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

如果有人可以使用适当的 POJO 对象模型向我提供一个简单的 POST/GET 示例,那就太好了。

我有限的理解是 OData 将有关实际对象模型的任何信息从编译时移动到客户端的运行时。我很高兴忽略这一点并针对固定对象模型进行编码,因为我们使用的服务不会改变。

最佳答案

Olingo 似乎忽略了客户端 API 的文档。但是GIT repository中有一个例子在 sample /客户。

基本上,对于 GET,您需要执行以下操作:

String serviceUrl = "http://localhost:9080/odata-server-sample/cars.svc"
String entitySetName = "Manufacturers";

ODataClient client = ODataClientFactory.getClient();
URI absoluteUri = client.newURIBuilder(serviceUri).appendEntitySetSegment(entitySetName).build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> request =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(absoluteUri);
// odata4 sample/server limitation not handling metadata=full
request.setAccept("application/json;odata.metadata=minimal");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> response = request.execute();
ClientEntitySetIterator<ClientEntitySet, ClientEntity> iterator = response.getBody();

while (iterator.hasNext()) {
ClientEntity ce = iterator.next();
System.out.println("Manufacturer name: " + ce.getProperty("Name").getPrimitiveValue());
}

查看 Olingo 代码库中的示例以获取更多详细信息检索元数据、处理所有属性等。

要执行 POST,您可以执行以下操作。 (请注意,这不是经过测试的代码,示例汽车服务是只读的。)首先,您将数据构建为 ClientEntity。你做例如与

ClientComplexValue manufacturer = of.newComplexValue("Manufacturer");
manufacturer.add(of.newPrimitiveProperty("Name", of.newPrimitiveValueBuilder().buildString("Ford")));

然后你发送POST请求

ODataEntityCreateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityCreateRequest(absoluteUri, manufacturer);
ODataEntityCreateResponse<ClientEntity> response = request.execute();

所以这不适用于 POJO 类 - 结果类型是 ClientEntity,它将数据呈现为名称/值映射。关于该特定主题已经有另一个 Unresolved 问题 Olingo - Create strongly typed POJOs for client library of OData service我建议我们转向那里跟进。

关于java - 如何使用 Olingo 或 SDL OData Framework 在 Java 中使用 OData4 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com