ADN Open CIS
Сообщество программистов Autodesk в СНГ

23/08/2017

API создания папок для документов BIM 360

API для создания папки в BIM 360 Docs наконец-то доступен. Однако прежде чем вы вернетесь к своему коду и попробуйте сами, я должен указать несколько вещей, которые вы, возможно, захотите знать:

  • Он использует команды (не конечные точки папок проекта POST)
  • Он поддерживается только в контексте пользователя: то есть, трехсторонняя (3-legged) аутентификация и двухсторонняя (2-legged) с указанным x-user-id. В настоящее время двухсторонняя аутентификация не поддерживается в полном объеме.

Обратите внимание, что BIM 360 Team и другая служба управления данными на основе A360 используют  конечную точку POST-projects-folders для создания папки; версия команды для них не работает. Они могут потенциально добавить путаницу, если вы не знаете заранее. Команда BIM 360 Docs знает об этих пробелах и будет продолжать работать, чтобы обеспечить последовательную полномасштабную поддержку в двухсторонней аутентификации позже. На данный момент, самое главное, у нас есть способ создать папку!  Давайте посмотрим.

Команда создания папок

Документация:

URL:  https://developer.api.autodesk.com/data/v1/projects/:project_id/commands

Метод: POST

OAuth Scope: data:create

URL parameter:

  • project_id - идентификатор проекта

Заголовки

  • Authorization –   Bearer <token>
  • Content-Type – application/vnd.api+json
  • X-user-id - идентификатор пользователя в случае двухсторонней аутентификации (необязательно).

Вы можете получить идентификатор пользователя, используя конечную точку GET-users-@me:

Пример тела запроса приведен ниже. urn:xxx внизу - идентификатор родительской папки. "API Folder1" под "included.attributes.name" - имя папки, которую вы пытаетесь добавить, и два "is" под "data.relationships.resources.data" и  "included" должны совпадать.

 

Код - HTML: [Выделить]
  1. {
  2.     "data": {
  3.         "type": "commands",
  4.         "attributes": {
  5.             "extension": {
  6.                 "type": "commands:autodesk.core:CreateFolder",
  7.                 "version": "1.0.0"
  8.             }
  9.         },
  10.         "relationships": {
  11.             "resources": {
  12.                 "data": [
  13.                     { "type": "folders", "id": "1" }
  14.                 ]
  15.             }
  16.         }
  17.     },
  18.     "included": [{
  19.         "type": "folders",
  20.         "id": "1",
  21.         "attributes": {
  22.             "name": "API Folder1",
  23.             "extension": {
  24.                 "type": "folders:autodesk.bim360:Folder",
  25.                 "version": "1.0.0"
  26.             }
  27.         },
  28.         "relationships": {
  29.             "parent": {
  30.                 "data": {
  31.                              "type": "folders",
  32.                              "id": "urn:adsk.wipprod:fs.folder:co.cw-3qj5SQ8Wcuwy4VaThdg"
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     ]
  38. }

Ниже приведен еще один пример. На этот раз создадим несколько папок. Обратите внимание, что "data.relationships.resources.data" а также "included" являются списками. Несколько идентификаторов из двух списков сочетаются по значению id:

Код - HTML: [Выделить]
  1. {
  2.     "data": {
  3.         "type": "commands",
  4.         "attributes": {
  5.             "extension": {
  6.                 "type": "commands:autodesk.core:CreateFolder",
  7.                 "version": "1.0.0"
  8.             }
  9.         },
  10.         "relationships": {
  11.             "resources": {
  12.                 "data": [
  13.                     { "type": "folders", "id": "1" },
  14.                     { "type": "folders", "id": "2" }
  15.                 ]
  16.             }
  17.         }
  18.     },
  19.     "included": [{
  20.         "type": "folders",
  21.         "id": "1",
  22.         "attributes": {
  23.             "name": "API Folder1",
  24.             "extension": {
  25.                 "type": "folders:autodesk.bim360:Folder",
  26.                 "version": "1.0"
  27.             }
  28.         },
  29.         "relationships": {
  30.             "parent": {
  31.                 "data": {
  32.                              "type": "folders",
  33.                              "id": "urn:adsk.wipprod:fs.folder:co.Bf6FgsnT_TRepl345z2CicQ"
  34.                 }
  35.             }
  36.         }
  37.     },
  38.     {
  39.         "type": "folders",
  40.         "id": "2",
  41.         "attributes": {
  42.             "name": "API Folder2",
  43.             "extension": {
  44.                 "type": "folders:autodesk.bim360:Folder",
  45.                 "version": "1.0"
  46.             }
  47.         },
  48.         "relationships": {
  49.             "parent": {
  50.                 "data": {
  51.                              "type": "folders",
  52.                              "id": "urn:adsk.wipprod:fs.folder:co.Bf6FsfT_TRegp36Bz2CicQ"
  53.                 }
  54.             }
  55.         }
  56.     }
  57.     ]
  58. }

Другой распространенный вопрос, который мы имеем, - о разрешениях на папку. В настоящее время нет API для управления разрешениями на папку. Когда вы создаете папку под конкретной папкой, разрешение будет наследоваться из родительской папки.

Источник: https://fieldofviewblog.wordpress.com/2017/08/16/folder-creation-api-for-bim-360-docs

Автор перевода: Дмитрий Емельянов
Опубликовано 23.08.2017
Отредактировано 23.08.2017 в 16:22:07