繁体   English   中英

CloudSDK可以帮助使用仅在运行时已知的OData实体类型吗?

[英]Can the CloudSDK help consuming an OData entity type known only at runtime?

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

Cloud SDK是否提供可帮助OData查询部件的组件? 还是我们需要诉诸诸如Olingo之类的通用商品?

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

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

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

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

如果没有,则可以处理请求的ResultElement ,例如处理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的文档可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM