[英]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.