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

10/01/2017

Основы Data Management API - Пользовательские отношения

Пользовательские отношения (Custom relationships) между ресурсами в рамках службы известны как "refs".

Refs может быть использован для связи какого-либо одного ресурса (folders, items, versions) с другим ресурсом.

На приведенной ниже схеме показан ref derived:autodesk.fusion360:DrawingToDesign между чертежом Fusion, который является производным от конструкции Fusion.

Она также иллюстрирует ref auxiliary:autodesk.core:Attachment между Fusion Design и присоединенной таблицей.

 

REFS сами по себе имеют различные типы, доступные для представления внешних ссылок, общих вложений и других типов пользовательских отношений:

 

Refs являются версионизированными и описывается с помощью схемы JSON.

Они хранятся в службе Forge Schema, а также могут быть просмотрены с помощью Schema Browser.

Определение ref включает fromAllowedTypes а также toAllowedTypes на любом конце отношений.

Как показано в примере вызова к POST projects/:project_id/versions/:version_id/relationships/refs ниже, refs всегда создаются на ресурсе "from", к ресурсу "to" на другом конце связи. Базовый тип "from" и ID указаны как часть URL, которая была передана, а базовый тип "to" и ID указаны в полезной нагрузке POST, используя data.type и data.id соответственно.

Объекты data.meta.extension.typeиdata.meta.extension.version должны ссылаться на предопределенный ref в службе Forge Schema.

Код - HTML: [Выделить]
  1. curl -v 'https://developer.api.autodesk.com/data/v1/projects/a.45637/versions/urn%3adsk.wipstg%3dm.file%3vf.hC6k4hndRWaeIVhIjvHu8w?version=2/relationships/refs'
  2.   -X 'POST'
  3.   -H 'Content=Type: application/vnd.api+json'
  4.   -H 'Accept: application/vnd.api+json'
  5.   -H 'Authorization: Bearer kgEJWMJitdYbhfxghap8SbZqXMoS'
  6.   -d '
  7.     {
  8.       "jsonapi": { "version": "1.0" },
  9.       "data": {
  10.         "type": "versions",
  11.         "id": "urn:adsk.wipstg:dm.file:vf.RWaeIVhIjvHu6e?version=2",
  12.         "meta": {
  13.           "extension": { "type": "auxiliary:autodesk.core:Attachment", "version": "1.0"}
  14.         }
  15.       }
  16.     }
  17.    '

Следующие объекты JSON иллюстрируют пример ref между данным и другим ресурсом:

Код - HTML: [Выделить]
  1. {
  2.    "type": "versions",
  3.    "id": "urn:adsk.wipstg:dm.file:vf.RWaeIVhIjvHu6e?version=2",
  4.    "meta": {
  5.      "refType": "auxiliary",
  6.      "fromId": "urn:adsk.wipstg:dm.file:vf.hC6k4hndRWaeIVhIjvHu8w?version=2",
  7.      "fromType": "versions",
  8.      "toId": "urn:adsk.wipstg:dm.file:vf.RWaeIVhIjvHu6e?version=2",
  9.      "toType": "versions",
  10.      "direction": "from",
  11.      "extension": {
  12.         "type": "auxiliary:autodesk.core:Attachment"
  13.         "version": "1.0"
  14.         "schema": "..."
  15.       }
  16.    }
  17. }

Атрибут

Тип значения

Описание

type

string

тип объекта на другом конце отношения

id

string: URN

URN объекта на другом конце отношения

=meta=.refType

enum: string

базовый тип отношений

Возможные значения:

auxiliary: ресурсtoId является вспомогательными данными, которые связанны с fromId ресурсом

derived: ресурсfromId получен из toId ресурса

dependencies: ресурсfromId зависимый от toId ресурса

xrefs: ресурсtoId является внешней ссылкой от fromId ресурса

=meta=.direction

enum: string

указывает на то, каким является отношение: входящимto или исходящим изfrom данного ресурса

=meta.extension=.type

string

предопределенный ref в службе Forge Schema

Источник: https://developer.autodesk.com/en/docs/oauth/v2/overview/

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 10.01.2017