API нужен для обмена с внешней программой без открытого окна LabelRedo. Установите службу на Windows или Linux, подключите сохранённый проект и проверьте запуск. Настройку сети можно выполнить позже. Сначала проверьте API на компьютере, где установлена служба.
Для примера подойдёт отдельный проект SQLite с товарами: создайте проект и добавьте товар. Если проект уже подготовлен, используйте его файл .slf.
Установить службу в Windows
Нужны права администратора и установщик LabelRedo 4.1 с компонентом API. Отдельная установка .NET для этого комплекта не требуется.
- Запустите установщик и выберите «LabelRedo 4.1 GUI + API».
- На странице «Настройка LabelRedo API» выберите сохранённый файл проекта. Пример пути:
C:\LabelRedoManual\ApiData\CheeseWorks.slf. - На странице «Доступ к LabelRedo API» сохраните значение «API token:» в хранилище паролей. Оно понадобится для запросов.
- Завершите установку. Установщик создаст и запустит службу.
- Откройте 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 |
Подключить проект
Подготовьте отдельный каталог для проекта:
sudo install -d -o labelredo4-api -g labelredo4-api -m 0750 /var/lib/labelredo4-api/projectsСкопируйте туда сохранённый
.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Откройте настройки:
sudoedit /etc/labelredo4-api/labelredo4-api.envУкажите путь в строке проекта:
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.