API буфера обмена
Данный API позволяет настроить взаимодействие со сторонними программами, с которыми работа происходит на удаленном сервере через RDP и нет возможности установки AzureLabel на удаленном сервере. В таком случае, данные передаются через разделяемый между локальным компьютером и удаленным сервером буфер обмена.
Для работы с данным API программа запускается в режиме API сервера, для этого используется параметр в командной строке -apiserver
. Также для запуска программы в режиме API сервера вы можете использовать меню Windows Пуск:
После первого запуска необходимо установить флаг через контекстное меню программы в трее:
(это соответствует настройке "apiServer": {"useClipboardInsteadOfHttpForDataExchange": true}
в файле настроек программы config.json).
В данном API приложение принимает запросы через буфер обмена и выполняет команды или отдает данные в буфер обмена. Для этого сервер с периодичностью в 1 секунду просматривает содержимое буфера обмена. Если буфер обмена содержит текстовые данные и эти данные являются запросом серверу, то сервер выполняет команды и помещает в буфер обмена ответ.
Для передачи информации в программу используются текстовые данные специального формата в виде текстового блока в буфере обмена.
Запрос серверу
Для запроса серверу в буфер обмена нужно поместить следующие строки:
AzureLabelClipboardAPIRequest
- Путь вместе с параметрами как в документации к REST API. Путь и параметры объединяются по правилу составления URI. Например,
/templates?encoding=utf-8&format=text
Данные в формате JSON так как они описаны в секции "Request body" раздела "/labels/print" документации к REST API.
Необязательная строка.
Вы можете ознакомиться с REST API, посетив AzureLabel REST API документацию.
Примеры запросов
Предварительный просмотр с готовыми данными:
AzureLabelClipboardAPIRequest
/labels/preview
{
"label": "Моя этикетка",
"dataSource": {
"sourceType": "readyData",
"readyData": [
{
"PrintQuantity": 3,
"Name": "AzureLabel Pro, годовая подписка",
"Barcode": "5678901234562",
"Price": 69,
"Unit": "шт",
"Code": "pro-y"
},
{
"PrintQuantity": 1,
"Name": "AzureLabel Corporate, годовая подписка",
"Barcode": "8901234567890",
"Price": 102,
"Price2": 95,
"PriceOld": 110,
"Unit": "шт",
"Code": "corp-y"
}
]
}
}
Получение списка всех этикеток в папке Labels:
AzureLabelClipboardAPIRequest
/labels?encoding=utf-8&format=text
Ответ сервера
Программа помещает в буфер обмена ответ, в котором первая строка это:
AzureLabelClipboardAPIAnswer::OK
- при отсутствии ошибки. Последующие строки - это данные от программы, если запрос подразумевал получение данных от программы.AzureLabelClipboardAPIAnswer::ERROR
- в случае ошибки. Последующие строки - это описание ошибки.