为了账号安全,请及时绑定邮箱和手机立即绑定

CloudSDK 能否帮助使用仅在运行时已知的 OData 实体类型?

CloudSDK 能否帮助使用仅在运行时已知的 OData 实体类型?

慕姐4208626 2023-06-04 15:07:41
我们正在使用 Java 开发 Cloud Foundry 应用程序,它应该能够使用任何类型的 OData 实体。我们从 Destination 服务获得一个基本路径,添加一些用户输入的路径,并希望存储我们从那里获得的结果。Cloud SDK 是否提供有助于 OData 查询部分的组件?或者我们是否需要求助于像 Olingo 这样的通用产品?
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用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());

        }

    });


查看完整回答
反对 回复 2023-06-04
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信