1

我们正在使用 Java 开发一个 Cloud Foundry 应用程序,它应该能够使用任何类型的 OData 实体。我们从 Destination 服务获得一个基本路径,添加一些用户输入的路径,并希望存储我们从那里获得的结果。

Cloud SDK 是否提供有助于 OData 查询部分的组件?还是我们需要求助于像 Olingo 这样的通用工具?

4

1 回答 1

2

您可以使用ODataQueryBuilder执行任意 OData 调用,然后手动处理结果。

ODataQueryResult result = ODataQueryBuilder
            .withEntity("/base/path/to/api" + userPath, userEntity)
            .build()
            .execute("MyDestination");

然后如何处理结果在很大程度上取决于您的用例。如果返回的数据是您可以在运行时确定的已知类型,您可以简单地将结果检索为该类型。在这个例子中,我们收到一个项目列表:

List<MyClass> resList = result.asList(MyClass.class);

如果没有,您可以处理ResultElement请求的 s,例如处理 json 对象:

result.getResultElements().forEach(e -> {
        if( e.isResultObject() ) {
            JsonObject obj = ((GsonResultObject)e).getJsonObject();
            // do some json processing
        }
        else if( e.isResultCollection() ) {
            // do something else
        }
        else {
            System.out.println(e.getAsPrimitive());
        }
    });

您将在此博客文章中找到有关 ODataQueryBuilder 的一些信息。ResultElement 的文档可以在这里找到。

于 2019-08-14T07:47:11.693 回答