API буфера обмена

Данный API позволяет настроить взаимодействие со сторонними программами, с которыми работа происходит на удаленном сервере через RDP и нет возможности установки AzureLabel на удаленном сервере. В таком случае, данные передаются через разделяемый между локальным компьютером и удаленным сервером буфер обмена.

Для работы с данным API программа запускается в режиме API сервера, для этого используется параметр в командной строке -apiserver. Также для запуска программы в режиме API сервера вы можете использовать меню Windows Пуск:

После первого запуска необходимо установить флаг через контекстное меню программы в трее:

(это соответствует настройке "apiServer": {"useClipboardInsteadOfHttpForDataExchange": true} в файле настроек программы config.json).

В данном API приложение принимает запросы через буфер обмена и выполняет команды или отдает данные в буфер обмена. Для этого сервер с периодичностью в 1 секунду просматривает содержимое буфера обмена. Если буфер обмена содержит текстовые данные и эти данные являются запросом серверу, то сервер выполняет команды и помещает в буфер обмена ответ.

Для передачи информации в программу используются текстовые данные специального формата в виде текстового блока в буфере обмена.

Запрос серверу

Для запроса серверу в буфер обмена нужно поместить следующие строки:

  1. AzureLabelClipboardAPIRequest
  2. Путь вместе с параметрами как в документации к REST API. Путь и параметры объединяются по правилу составления URI. Например, /templates?encoding=utf-8&format=text
  3. Данные в формате 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 - в случае ошибки. Последующие строки - это описание ошибки.