3

我们需要一种在我们的自定义集成中模仿 BIM 360 Docs 文件管理器的方法,并且为此使用 Forge API 并不能解决问题。我们正在尝试使用单个 API 调用检索给定文件夹的子文件夹列表。

我们现在尝试做的方式是使用这个端点和过滤器

/data/v1/projects/{{ProjectId}}/folders/{{FolderId}}/contents?filter[extension.type]=folders:autodesk.bim360:Folder

但是,这种方法存在问题。长话短说,它非常无效。由于在分页后应用了过滤器(为什么?),因此必须遍历结果集中的所有页面才能找到给定文件夹中的所有子文件夹。这可能需要很长时间,并且在查询包含许多项目的文件夹时通常需要多次往返服务器。对该端点的每次调用平均为 700 毫秒,如果我们要多次调用该端点,这太长了。

另一方面,BIM 360 Docs Web 应用程序内部 API 使用一个端点,该端点仅在一次调用中完成,通常在 300 毫秒以下。

获取https://docs.b360.autodesk.com/api/v1/projects/875bb618-ec50-4bd8-92c7-e7d7a145de58/folders/urn%3Aadsk.wipprod%3Afs.folder%3Aco.lQJO7gkbRKKF5EZcEFWF9g/folder_tree?include_permission=false

两个问题:

  1. 来自https://docs.b360.autodesk.com/api/v1/域的 BIM 360 Docs 未记录的 API 能否用于第三方集成?有这些的文档吗?
  2. 如果 #1 不是一个选项,那么使用当前 Forge/BIM360 公共 API 实现我们需要的最佳方法是什么?
4

1 回答 1

0

您是否尝试过使用page[limit]参数?您最多可以200在列出文件夹时使用,这将大大减少您对额外调用的需求。

根据您的问题,我根据文档进行了测试:

/data/v1/projects/:project_id/folders/:folder_id/contents?filter[extension.type]=folders:autodesk.bim360:Folder&page[limit]=200

而且我建议不要使用未记录的端点,这些端点可能会更改,恕不另行通知。

于 2018-06-28T11:51:58.710 回答