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

12/01/2017

Основы Data Management API - Аутентификация и области применения, фильтрация

Аутентификация и области применения

Data Management API требует использования предъявления токенов OAuth2. Смотрите документацию OAuth для получения дополнительной информации об аутентификации, получении токена и областях действия.

В целом, доступ к данным проекта A360 и Fusion 360 требует использования  3-legged токена OAuth2.

HTTP GET к службам Project и Data данных требуют data:read области применения.

HTTP POST к службе Data service требуют data:create области применения, но также могут быть вызваны с областью применения data:write.

Фильтрация

В соответствии со спецификацией фильтрации JSON API, многие из конечных точек служб  Project и Data поддерживают фильтрацию с использованием параметра запроса filter.

Чтобы отфильтровать результаты на основе одного атрибута, соответствующего определенному значению, используйте конструкцию filter[<fieldName>]=<matchValue> для параметра запроса, где <fieldName> это ID ресурса, type, или любой из атрибутов ресурса или метаданные и <matchValue> - это значение, соответствие которому требуется. (При указании атрибута ресурса или части метаданных, имя поля не должно включать в себя attributes или префикс meta.)

Только для атрибута extension.type может быть предоставлена частичная строка соответствия, которая будет соответствовать началу строки, сформированной путем соединения extension.type и extension.version. Ограничение частичного соответствия должно быть выполнено блоками (<basetype>:<namespace>:<extensiontype>), так, например, items:autodesk не разрешено, так как пространство имен обрезано, со специальной поддержкой версии extension.type (где File=1 соответствуетFile=1.0, File=1.1, etc.).

Чтобы отфильтровать результаты на основе одного атрибута, который соответствует какому-либо одному из нескольким значениям (т.е. по логике операции "OR"), используется конструкция filter[<fieldName>]=<matchValue1>,...,<matchValueN>.

Если используется несколько параметров filter, все они должны удовлетворять соответствию (то есть, они осуществляют операцию "AND").

Конечная точка и пример фильтра Параметр запроса

Поведение

GET hubs

filter[id]=a.YnVzaW5lc3Md2lwMWZxYWF1G9kZXNrMTYx

возвращает все hubs с указанным id

GET hubs

filter[name]=MyHubName

возвращает все hubs с name = MyHubName

GET hubs/:hub_id/projects

filter[extension.type]=projects:autodesk.core:Project

возвращает все projects A360

GET hubs/:hub_id/projects

filter[name]=MyProject,YourProject

возвращает все projects с name = MyProject и все проекты с name = YourProject

GET hubs/:hub_id/projects

filter[extension.type]=projects:autodesk.core:Project

&filter[name]=MyProject

возвращает все projects A360 с name = MyProject

GET projects/:project_id/folders/:folder_id/contents

filter[extension.type]=items

возвращает все items из folder

GET projects/:project_id/folders/:folder_id/contents

filter[extension.type]=items:autodesk.core:File

возвращает все files A360

GET projects/:project_id/folders/:folder_id/contents

filter[extension.type]=items:autodesk.core:File=1

возвращает все файлы A360 с основной версией = 1

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

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

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

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