一种使用一次调用在Forge API中列出文件夹结构的方法?

时间:2018-06-27 11:45:50

标签: autodesk-forge autodesk-bim360

我们需要一种在我们的自定义集成中模仿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使用的终结点仅在一次调用中完成,并且通常在300ms以内。

获取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. BIM 360 Docs是否可以从 https://docs.b360.autodesk.com/api/v1/域可以在第3个域中使用 政党整合?是否有关于这些的文档?
  2. 如果没有选择#1,那么使用我们实现目标所需的最佳方法是什么? 当前的Forge / BIM360公共API?

1 个答案:

答案 0 :(得分:0)

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

根据您的问题,基于documentaiton,我进行了以下测试:

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

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