AppPackage API в AutoCAD I/O API - Часть 1
AppPackage это модуль, который может быть загружен в основном ядре AutoCAD, который содержит функции, которые он может выполнять. Все AppPackages должны быть пакетами AutoCAD AutoLoader. Это могут быть архивные файлы, содержащие DLL, код LISP, или другие модули, которые могут быть загружены в основной движок AutoCAD. Ниже приведен пример AppPackage. Ниже приведен пример AppPackage.
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/54b48200-37e9-4f43-8392-4974b7d9dcd2? AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432145046&Signature=%2BRuYHEJ1JIXlXx6l1788uDpn66E%3D","RequiredEngineVersion":"20.0","IsPublic":false,
- "IsObjectEnabler":false,"Id":"MyAppPackage","Id":"MyAppPackage","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- }
Эти пакеты приложений определяют модуль автозагрузчика AutoCAD, расположенный по "Resource" URL. Он имеет следующие параметры:
- "Id": Определяет уникальное имя. Этот параметр является обязательным.
- "Resource": определяет расположение модуля.
- "References": включают в себя ссылки AppPackages. В большинстве случаев он пуст. Но если ваш AppPackage зависит от других AppPackages, необходимо указать их идентификаторы здесь.
- "RequiredEngineVersion": указывает версию AutoCAD для запуска AppPackage. Вы можете получить значение с помощью команды "ACADVER" в AutoCAD.
- "version": определяет количество AppPackage версии.
- "Timestamp": определяет время, когда AppPackage был в последний раз создан/изменен. Вы можете пропустить его при создании AppPackage.
- "Description": Определяет более подробную информацию о AppPackage. Это свойство является необязательным.
Пользователь может создавать/читать/обновлять/удалять (create/read/update/delete - CRUD) пакеты AppPackage.
Для создания AppPackage
Модуль AppPackage хранится в Simple Storage Service (S3) от Amazon, который управляется Autodesk. Это делается для того, чтобы модуль был всегда доступен при необходимости. Прежде чем объект AppPackage может быть создан, модуль должен быть загружен на Amazon S3 пользователем. Чтобы создать свой собственный модуль AppPackage, выполните следующие действия.
- Запросите предварительно подписанный URL, который будет использоваться для загрузки модуля файла.
- Загрузите файл
- Создайте AppPackage, ссылающийся на файл модуля.
Шаг 1: Запросите предварительно подписанный URL
GET autocad.io/us-east/v2/AppPackages/Operations.GetUploadUrl
Запросите предварительно подписанный URL для загрузки
Пример успешного запроса:
- GET /autocad.io/us-east/v2/AppPackages/Operations.GetUploadUrl HTTP/1.1
- Authorization: Bearer my_token
Пример успешного ответа:
- HTTP/1.1 200 OK
- Cache-Control: no-cache
- Content-Type: application/json; charset=utf-8
- Date: Mon, 12 May 2014 21:29:13 GMT
- Expires: -1
- Pragma: no-cache
- Server: Microsoft-IIS/8.0
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
- Content-Length: 1036
- Connection: keep-alive
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#Edm.String","value":"https://acesdev.s3-us-west-2.amazonaws.com/aces-ap
- ppackages/ClientConsole-Dev/8f4cae3e-c17e-4f7a-9df9-1c4703b69889?AWSAccessKeyId=AKIAJVT56CBNM4XOWBBA&Expires=1432146217&Signature=
- 1L%2BUF8aGM%2BZFwjHOLsxXRDQ%2FhfY%3D"
- }
Шаг 2: Загрузить файл модуля
GET autocad.io/us-east/v2/AppPackages/Operations.GetUploadUrl(RequireContentType=true)
После получения предварительно подписанного URL, пользователь имеет 24 часа, чтобы выгрузить файл модуля. В вашем запросе выгрузки, вы не должны указывать заголовок Content-Type. Однако, если ваша библиотека требует установки Content-Type заголовка, то вы должны вызвать API, упомянутое в этом шаге, с параметром RequireContentType, установленным в true. Убедитесь, что значение вашего Content-Type является "binary/octet-stream".
Шаг 3: Создание AppPackage
POST autocad.io/us-east/v2/AppPackages
Создает модуль AppPackage. Если имеется существующий модуль AppPackage, отобразится ошибка 302 - "An apppackage with the same UserId and Id is found. Please use Put or Patch to update.”.
Пример успешного запроса:
- POST /autocad.io/us-east/v2/AppPackages HTTP/1.1
- Content-Type: application/json
- Authorization: Bearer my_token
- Host: autocad.io
- Content-Length: 1173
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/8f4cae3e-c17e-4f7a-9df9-1c4703b69889?AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432146217&Signature=1L%2BUF8aGM%2BZFwjHOLsxXRDQ%2FhfY%3D","RequiredEngineVersion":"20.0","IsPublic":false,
- "IsObjectEnabler":false,"Id":"SampleApp","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- }
Пример успешного ответа:
- HTTP/1.1 201 Created
- Cache-Control: no-cache
- Content-Type: application/json; charset=utf-8
- Date: Mon, 12 May 2014 21:13:50 GMT
- Expires: -1
- Location: https://developer.api.autodesk.com/autocad.io/us-east/v2/AppPackages('SampleApp')
- Pragma: no-cache
- Server: Microsoft-IIS/8.0
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
- Content-Length: 1175
- Connection: keep-alive
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/8f4cae3e-c17e-4f7a-9df9-1c4703b69889?AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432146217&Signature=1L%2BUF8aGM%2BZFwjHOLsxXRDQ%2FhfY%3D","RequiredEngineVersion":"20.0","IsPublic":false,
- "IsObjectEnabler":false,"Id":"SampleApp","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- }
Коды статуса:
Коды статуса HTTP |
Сообщение разработчика |
201 |
AppPackage успешно создан. |
302 |
Найден Apppackage с таким же Id. Для обновления используйте Put или Patch. |
401 |
Недостаточно прав для выполнения этой операции. |
500 |
Внутренняя ошибка сервера |
Заголовки запроса
Заголовок запроса |
Описание |
Content-Type |
– application/x-www-form-urlencoded |
Authorization |
- Предъявитель my_token |
Чтобы получить AppPackage
GET autocad.io/us-east/v2/AppPackages('{my_id}')
Получить конкретный apppackage
Пример успешного запроса:
- GET /autocad.io/us-east/v2/AppPackages('SampleApp') HTTP/1.1
- Accept: application/json
- Accept-Charset: UTF-8
- Authorization: Bearer my_token
- Host: autocad.io
Пример успешного ответа:
- HTTP/1.1 200 OK
- Cache-Control: no-cache
- Content-Type: application/json; odata=minimalmetadata; streaming=true; charset=utf-8
- Date: Mon, 12 May 2014 21:40:13 GMT
- Expires: -1
- Pragma: no-cache
- Server: Microsoft-IIS/8.0
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
- Content-Length: 1179
- Connection: keep-alive
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/8f4cae3e-c17e-4f7a-9df9-1c4703b69889?AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432146217&Signature=1L%2BUF8aGM%2BZFwjHOLsxXRDQ%2FhfY%3D","RequiredEngineVersion":"20.0","IsPublic":false,
- "IsObjectEnabler":false,"Id":"SampleApp","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- }
Заголовки запроса
Заголовок запроса |
Описание |
Authorization |
- Предъявитель my_token |
Примечание: Значение ресурса (предварительно подписанная гиперссылка) повторно создается каждый раз, когда она запрашивается. Она доступна только для чтения, так что
вы не можете использовать её для загрузки обновленный файл модуля. Чтобы сделать это, вы должны снова пройти весь процесс создания и обновить AppPackage на шаге 3, вместо создания нового.
Чтобы получить все AppPackages
GET autocad.io/us-east/v2/AppPackages
Получить все AppPackages
Пример успешного запроса:
- GET /autocad.io/us-east/v2/AppPackages HTTP/1.1
- Accept: application/json
- Accept-Charset: UTF-8
- Authorization: Bearer my_token
- Host: autocad.io
Пример успешного ответа:
- HTTP/1.1 200 OK
- Cache-Control: no-cache
- Content-Type: application/json; charset=utf-8
- Date: Mon, 12 May 2014 21:39:00 GMT
- Expires: -1
- Pragma: no-cache
- Server: Microsoft-IIS/8.0
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
- Content-Length: 3354
- Connection: keep-alive
- {
- "odata.metadata":"https://developer.api.autodesk.com/autocad.io/us-east/v2/$metadata#AppPackages","value":[
- {
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/8f4cae3e-c17e-4f7a-9df9-1c4703b69889?AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432146217&Signature=1L%2BUF8aGM%2BZFwjHOLsxXRDQ%2FhfY%3D","RequiredEngineVersion":"20.0","Public":false,
- "Id":"SampleApp","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- },{
- "@odata.context":"http://localhost:39284/api/v2/$metadata#AppPackages/$entity","References":[
- ],"Resource":"https://acesdev.s3-us-west-2.amazonaws.com/aces-apppackages/ClientConsole-Dev/54b48200-37e9-4f43-8392-4974b7d9dcd2?AWSAccessKeyId=AK
- IAJVT56CBNM4XOWBBA&Expires=1432145046&Signature=%2BRuYHEJ1JIXlXx6l1788uDpn66E%3D","RequiredEngineVersion":"20.0","IsPublic":false,
- "IsObjectEnabler":false,"Id":"MyAppPackage","Version":1,"Timestamp":"2015-02-11T19:15:40.835Z","Description":""
- }
- ]
- }
Заголовки запроса
Заголовок запроса |
Описание |
Authorization |
- Предъявитель my_token |
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 04.04.2016