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 знает об этих пробелах и будет продолжать работать, чтобы обеспечить последовательную полномасштабную поддержку в двухсторонней аутентификации позже. На данный момент, самое главное, у нас есть способ создать папку! Давайте посмотрим.
Команда создания папок
Документация:
- https://developer.autodesk.com/en/docs/data/v2/reference/http/CreateFolder/
- https://developer.autodesk.com/en/docs/data/v2/overview/commands/
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" должны совпадать.
- {
- "data": {
- "type": "commands",
- "attributes": {
- "extension": {
- "type": "commands:autodesk.core:CreateFolder",
- "version": "1.0.0"
- }
- },
- "relationships": {
- "resources": {
- "data": [
- { "type": "folders", "id": "1" }
- ]
- }
- }
- },
- "included": [{
- "type": "folders",
- "id": "1",
- "attributes": {
- "name": "API Folder1",
- "extension": {
- "type": "folders:autodesk.bim360:Folder",
- "version": "1.0.0"
- }
- },
- "relationships": {
- "parent": {
- "data": {
- "type": "folders",
- "id": "urn:adsk.wipprod:fs.folder:co.cw-3qj5SQ8Wcuwy4VaThdg"
- }
- }
- }
- }
- ]
- }
Ниже приведен еще один пример. На этот раз создадим несколько папок. Обратите внимание, что "data.relationships.resources.data" а также "included" являются списками. Несколько идентификаторов из двух списков сочетаются по значению id:
- {
- "data": {
- "type": "commands",
- "attributes": {
- "extension": {
- "type": "commands:autodesk.core:CreateFolder",
- "version": "1.0.0"
- }
- },
- "relationships": {
- "resources": {
- "data": [
- { "type": "folders", "id": "1" },
- { "type": "folders", "id": "2" }
- ]
- }
- }
- },
- "included": [{
- "type": "folders",
- "id": "1",
- "attributes": {
- "name": "API Folder1",
- "extension": {
- "type": "folders:autodesk.bim360:Folder",
- "version": "1.0"
- }
- },
- "relationships": {
- "parent": {
- "data": {
- "type": "folders",
- "id": "urn:adsk.wipprod:fs.folder:co.Bf6FgsnT_TRepl345z2CicQ"
- }
- }
- }
- },
- {
- "type": "folders",
- "id": "2",
- "attributes": {
- "name": "API Folder2",
- "extension": {
- "type": "folders:autodesk.bim360:Folder",
- "version": "1.0"
- }
- },
- "relationships": {
- "parent": {
- "data": {
- "type": "folders",
- "id": "urn:adsk.wipprod:fs.folder:co.Bf6FsfT_TRegp36Bz2CicQ"
- }
- }
- }
- }
- ]
- }
Другой распространенный вопрос, который мы имеем, - о разрешениях на папку. В настоящее время нет API для управления разрешениями на папку. Когда вы создаете папку под конкретной папкой, разрешение будет наследоваться из родительской папки.
Источник: https://fieldofviewblog.wordpress.com/2017/08/16/folder-creation-api-for-bim-360-docs
Опубликовано 23.08.2017
Отредактировано 23.08.2017 в 16:22:07