模型衍生物API响应未映射到杰克逊

时间:2017-11-30 12:26:13

标签: autodesk-forge autodesk-model-derivative

是否有来自模型衍生API的响应对象的更新,因为我们遇到的问题是将响应从3D模型的请求映射回Manifest和Metadata对象。

两人都在抛出杰克逊的错误。

  1. GetManifest返回未处理的角色枚举
  2. GetMetadataForGuid正在抛出 - 非法字符((CTRL-CHAR,代码31))
  3. 由于

2 个答案:

答案 0 :(得分:1)

我对这个问题有什么不妥。 Get Manifest端点的响应最近发生了一些变化。除了Revit生成的清单的几何节点外,还有一个属性数据库节点。因此,新的角色是Autodesk.CloudPlatform.PropertyDatabase'。虽然旧的JAVA对象ManifestChildren.JAVA没有声明该角色。这导致了失败。 enter image description here

要修复它,您只需在ManifestChildren.JAVA中添加新角色,例如

enter image description here

我已经请求了JAVA SDK的提交。如果将SDK源代码合并到项目中,则可以直接在您身边修改它。

希望这有帮助。

答案 1 :(得分:0)

这是回答第二个问题作为所有人的参考。

问题是由于在调用GET时将标头设置为“gzip”格式:urn / metadata /:guid。如果它不是“gzip”,那么一切都运行良好。使用Postman之类的其他方式,使用gzip的标题也可以。

过去,当客户端使用gzip头时,实际上它不会触发gzip编码。一切都很好。最近发布后,如果指定了gzip,内容将返回gzip中的内容,而SDK无法正确处理。邮递员自动将gzip解压缩到json,所以看起来很有效。

因此,修复可能是在第115行的ApiClient.java中添加一行:client.addFilter(new GZIPContentEncodingFilter(false));

我还在我的空间中分发了源github存储库,修复了两个问题。拉请求提交到主仓库。那就是允许API调用的响应可以处理gzip内容并解压缩它。 https://github.com/xiaodongliang/forge-api-java-client

对于使用SDK影响某些项目的两个问题,我们深表歉意。