Способ составить список структур папок в Forge API, используя один вызов? - PullRequest
0 голосов
/ 27 июня 2018

Нам нужен способ имитировать файловый менеджер BIM 360 Docs в нашей пользовательской интеграции, и использование API Forge для этого не помогает. Мы пытаемся получить список подпапок данной папки, используя один вызов API.

То, как мы сейчас пытаемся это сделать, - использование этой конечной точки с фильтрами

/ данные / v1 / проекты / {{ProjectID}} / папки / {{FolderId}} / содержимое фильтра [extension.type] = папки: autodesk.bim360: Папка

Однако при таком подходе есть проблемы. Короче говоря, это очень неэффективно. Поскольку фильтры применяются после разбивки на страницы (почему?), Необходимо выполнить итерацию по всем страницам в наборе результатов, чтобы найти все подпапки в данной папке. Это может занять очень много времени и обычно требует много обращений к серверу при запросе папок с большим количеством элементов в них. В среднем каждый вызов этой конечной точки составляет 700 мс, что слишком много, если мы будем вызывать эту конечную точку несколько раз.

С другой стороны, внутренний API веб-приложения BIM 360 Docs использует конечную точку, которая делает это только за один вызов и обычно не более 300 мс.

GET 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. Могут ли недокументированные API BIM 360 Docs из https://docs.b360.autodesk.com/api/v1/ домен может быть использован в 3-м партийные интеграции? Есть ли документация для них?
  2. Если # 1 не вариант, то как лучше всего добиться того, что нам нужно, используя текущие общедоступные API Forge / BIM360?

1 Ответ

0 голосов
/ 28 июня 2018

Вы пробовали использовать параметр page[limit]? При перечислении папки вы можете использовать до 200, что должно значительно сократить ваши потребности в дополнительных вызовах.

Из вашего вопроса, основанного на документации , я проверил:

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

И я бы предложил НЕ использовать недокументированные конечные точки, они могут изменяться без уведомления.

...