API нужен для обмена с внешней программой без открытого окна LabelRedo. Установите службу на Windows или Linux, подключите сохранённый проект и проверьте запуск. Настройку сети можно выполнить позже. Сначала проверьте API на компьютере, где установлена служба.

Для примера подойдёт отдельный проект SQLite с товарами: создайте проект и добавьте товар. Если проект уже подготовлен, используйте его файл .slf.

Установить службу в Windows

Нужны права администратора и установщик LabelRedo 4.1 с компонентом API. Отдельная установка .NET для этого комплекта не требуется.

  1. Запустите установщик и выберите «LabelRedo 4.1 GUI + API».
  2. На странице «Настройка LabelRedo API» выберите сохранённый файл проекта. Пример пути: C:\LabelRedoManual\ApiData\CheeseWorks.slf.
  3. На странице «Доступ к LabelRedo API» сохраните значение «API token:» в хранилище паролей. Оно понадобится для запросов.
  4. Завершите установку. Установщик создаст и запустит службу.
  5. Откройте PowerShell и выполните:
Get-Service -Name LabelRedo4Api

В столбце Status должно быть Running. Служба работает от учётной записи LocalService, отдельно от окна LabelRedo.

Если в списке нет варианта «LabelRedo 4.1 GUI + API», нужен комплект с компонентом API. Вариант «LabelRedo 4.1 GUI» устанавливает только графическое приложение.

Если API уже установлен

При обновлении установщик сохраняет прежний файл настроек и пропускает страницы проекта и токена. Используйте прежний токен.

Чтобы указать другой проект, откройте от имени администратора файл C:\ProgramData\LabelRedo4.Api\api-settings.json. Измените только значение ProjectFilePath внутри LabelRedoApi. Остальные поля и запятую в конце строки сохраните. В JSON обратная косая черта в пути записывается дважды:

"ProjectFilePath": "C:\\LabelRedoManual\\ApiData\\CheeseWorks.slf",

Это одна строка существующего объекта, а не замена всего файла. Затем выполните в PowerShell от имени администратора:

Restart-Service -Name LabelRedo4Api
Get-Service -Name LabelRedo4Api

Проверить доступ к проекту

При первой установке служба получает права чтения и записи на выбранный каталог проекта. Если вы указали другой путь позже, права нужно выдать отдельно. Для выделенного каталога из примера выполните в PowerShell от имени администратора:

icacls.exe 'C:\LabelRedoManual\ApiData' /grant '*S-1-5-19:(OI)(CI)M'

Команда даёт LocalService права изменения на этот каталог и его содержимое. Используйте отдельный каталог проекта. Для SQLite службе нужны права на файл базы и каталог, где создаются вспомогательные файлы.

Если выбрали .sld, проверьте также доступ к базе, указанной внутри него. Для серверной базы администратор настраивает подключение и права в СУБД; права на файл .sld этого не заменяют.

Когда служба работает, перейдите к первому запросу.

Установить службу в Linux

Ниже описана установка скриптом install-labelredo4-api.sh в системе с systemd. Нужны права sudo, готовый комплект API для вашей архитектуры и ASP.NET Core Runtime 8.

Проверить .NET

dotnet --list-runtimes

В списке должны быть Microsoft.NETCore.App 8.x и Microsoft.AspNetCore.App 8.x. Если их нет, установите ASP.NET Core Runtime 8 для своего дистрибутива. SDK для запуска готового API не нужен.

Установить файлы службы

Откройте терминал в каталоге со скриптом. Вместо /path/to/api-publish укажите каталог комплекта, в котором лежит lable_redo_v4.Api.dll:

sudo bash ./install-labelredo4-api.sh /path/to/api-publish

Скрипт создаст пользователя labelredo4-api и установит файлы:

Что Путь
Программа /opt/LabelRedo4.Api
Настройки /etc/labelredo4-api/labelredo4-api.env
Состояние службы /var/lib/labelredo4-api

Подключить проект

  1. Подготовьте отдельный каталог для проекта:

    sudo install -d -o labelredo4-api -g labelredo4-api -m 0750 /var/lib/labelredo4-api/projects
    
  2. Скопируйте туда сохранённый .slf. Замените /path/to/CheeseWorks.slf путём к своему файлу:

    sudo install -o labelredo4-api -g labelredo4-api -m 0640 /path/to/CheeseWorks.slf /var/lib/labelredo4-api/projects/CheeseWorks.slf
    
  3. Откройте настройки:

    sudoedit /etc/labelredo4-api/labelredo4-api.env
    
  4. Укажите путь в строке проекта:

    LABELREDO_API_PROJECT=/var/lib/labelredo4-api/projects/CheeseWorks.slf
    

Оставьте прежнее значение LABELREDO_API_TOKEN: скрипт создаёт токен при первой установке. Оставьте LABELREDO_API_HOST=127.0.0.1, LABELREDO_API_PORT=5084 и LABELREDO_API_ALLOW_LAN=false для первой проверки. Пользователь labelredo4-api должен иметь доступ и к другим базам, если они настроены в проекте.

Запустить службу

sudo systemctl enable --now labelredo4-api.service
systemctl status labelredo4-api.service --no-pager

Ожидаемое состояние: active (running). После изменения настроек перезапустите службу:

sudo systemctl restart labelredo4-api.service

Теперь выполните первый запрос.

Если служба не запускается

В Windows проверьте состояние LabelRedo4Api и журнал API и события запуска. В Linux откройте последние записи:

sudo journalctl -u labelredo4-api.service -n 50 --no-pager

Начните с сообщения о причине остановки: занят ли порт, задан ли токен, доступен ли файл настроек. Исправьте указанную причину и повторите запуск. Общие параметры описаны в справочнике API.