API Профили
Этот раздел описывает API для управления профилями настроек.
Получение списка профилей
Возвращает список всех сохраненных профилей с их метаданными.
Эндпоинт: GET /rest/profiles
Метод: GET
Аутентификация: Требуется
Пример запроса (curl)
curl -X GET http://DEVICE_IP/rest/profiles \
-H "Authorization: Bearer YOUR_AUTH_TOKEN"
Ответы
200 OK: Успешный ответ со списком профилей.[ {"id": "0", "name": "Default Profile", "createdAt": "2024-01-01T12:00:00Z", "isApplied": true}, {"id": "1", "name": "Profile 1", "createdAt": "2024-01-02T10:30:00Z", "isApplied": false} ]
Получение активного профиля
Возвращает ID активного в данный момент профиля.
Эндпоинт: GET /rest/profiles/active
Метод: GET
Аутентификация: Требуется
Пример запроса (curl)
curl -X GET http://DEVICE_IP/rest/profiles/active \
-H "Authorization: Bearer YOUR_AUTH_TOKEN"
Ответы
200 OK:{"id": "0"}404 Not Found: Активный профиль не найден.{"error": "No active profile found"}
Получение содержимого профиля
Возвращает полное содержимое (все настройки) указанного профиля.
Эндпоинт: GET /rest/profiles/content
Метод: GET
Аутентификация: Требуется
Параметры запроса (Query)
id(string, required): Идентификатор профиля.
Пример запроса (curl)
curl -X GET "http://DEVICE_IP/rest/profiles/content?id=0" \
-H "Authorization: Bearer YOUR_AUTH_TOKEN"
Ответы
200 OK:{ "id": "0", "name": "Default Profile", "createdAt": "2024-01-01T12:00:00Z", "ssvc": { "setting_key_1": "value" } }400 Bad Request: Отсутствует параметрid.{"error": "Missing 'id' parameter in request"}404 Not Found: Профиль не найден или не удалось получить содержимое.{"error": "Profile content not found or failed to retrieve"}
Создание нового профиля
Создает новый профиль из текущих настроек системы. ID профиля генерируется автоматически.
Эндпоинт: POST /rest/profiles
Метод: POST
Аутентификация: Требуется
Тело запроса
{
"name": "Имя нового профиля"
}
Пример запроса (curl)
curl -X POST http://DEVICE_IP/rest/profiles \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Мой новый профиль"}'
Ответы
201 Created: Профиль успешно создан.{"success": true, "id": "1"}400 Bad Request: Неверный JSON или отсутствует полеname.{"error": "Missing or invalid 'name' field"}500 Internal Server Error: Не удалось сохранить профиль.{"error": "Failed to save profile"}
Обновление или удаление содержимого профиля
Обновляет или удаляет ключи в содержимом указанного профиля. Позволяет сохранять произвольную структуру данных или удалять ее части.
Эндпоинт: POST /rest/profiles/content
Метод: POST
Аутентификация: Требуется
Тело запроса
{
"id": "идентификатор_профиля",
"content": {
"ключ_для_обновления": "новое_значение",
"ключ_для_удаления": null
}
}
null.
Пример запроса (обновление и удаление)
curl -X POST http://DEVICE_IP/rest/profiles/content \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "1", "content": {"ssvc": {"power": 95}, "old_module": null}}'
Ответы
200 OK: Содержимое профиля успешно обновлено.{"success": "Profile content updated"}400 Bad Request: Неверный JSON или отсутствуют поляidилиcontent.{"error": "Missing or invalid 'content' field"}404 Not Found: Профиль не найден или не удалось обновить.{"error": "Profile not found or failed to update content"}
Удаление профиля
Удаляет указанный профиль.
Эндпоинт: DELETE /rest/profiles/delete
Метод: DELETE
Аутентификация: Требуется
Тело запроса
{
"id": "идентификатор_профиля"
}
Пример запроса (curl)
curl -X DELETE http://DEVICE_IP/rest/profiles/delete \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "1"}'
Ответы
200 OK: Профиль успешно удален.{"success": "Profile deleted"}400 Bad Request: Неверный JSON или отсутствует полеid.{"error": "Missing or invalid 'id' field in request body"}404 Not Found: Профиль не найден или не удалось удалить.{"error": "Profile not found or failed to delete"}
Копирование профиля
Создает копию существующего профиля с новым ID.
Эндпоинт: POST /rest/profiles/copy
Метод: POST
Аутентификация: Требуется
Тело запроса
{
"sourceId": "идентификатор_исходного_профиля",
"newName": "Имя копии профиля"
}
Пример запроса (curl)
curl -X POST http://DEVICE_IP/rest/profiles/copy \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"sourceId": "0", "newName": "Копия дефолтного"}'
Ответы
201 Created: Копия успешно создана.{"success": true, "id": "2"}400 Bad Request: Неверный JSON или отсутствуют поляsourceIdилиnewName.{"error": "Missing or invalid 'sourceId' field in request body"}409 Conflict: Не удалось скопировать профиль (например, исходный профиль не найден).{"error": "Failed to copy profile. source not found "}
Обновление имени профиля
Обновляет метаданные профиля, а именно его имя.
Эндпоинт: PUT /rest/profiles/meta
Метод: PUT
Аутентификация: Требуется
Тело запроса
{
"id": "идентификатор_профиля",
"name": "Новое имя профиля"
}
Пример запроса (curl)
curl -X PUT http://DEVICE_IP/rest/profiles/meta \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "2", "name": "Переименованная копия"}'
Ответы
200 OK: Метаданные успешно обновлены.{"success": "Profile updated"}400 Bad Request: Неверный JSON или отсутствуют поляidилиname.{"error": "Missing or invalid 'id' field in request body"}404 Not Found: Профиль не найден или не удалось обновить.{"error": "Profile not found or failed to update"}
Установка активного профиля и его применение
Устанавливает указанный профиль как активный и немедленно применяет его настройки к системе.
Эндпоинт: POST /rest/profiles/set-active
Метод: POST
Аутентификация: Требуется
Тело запроса
{
"id": "идентификатор_профиля"
}
Пример запроса (curl)
curl -X POST http://DEVICE_IP/rest/profiles/set-active \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "2"}'
Ответы
200 OK: Профиль успешно установлен как активный и применен.{"success": "Profile set as active and applied"}400 Bad Request: Неверный JSON или отсутствует полеid.{"error": "Missing or invalid 'id' field in request body"}404 Not Found: Профиль не найден или не удалось установить как активный.{"error": "Profile not found or failed to set as active"}500 Internal Server Error: Не удалось применить профиль.{"error": "Failed to set active and apply profile"}
Сохранение текущих настроек в профиль
Сохраняет текущие настройки системы в указанный профиль, перезаписывая его содержимое.
Эндпоинт: POST /rest/profiles/save
Метод: POST
Аутентификация: Требуется
Тело запроса
{
"id": "идентификатор_профиля"
}
Пример запроса (curl)
curl -X POST http://DEVICE_IP/rest/profiles/save \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "2"}'
Ответы
200 OK: Текущие настройки успешно сохранены в профиль.{"success": true, "message": "Current settings saved to profile."}400 Bad Request: Неверный JSON или отсутствует полеid.{"error": "Missing or invalid 'id' field in request body"}404 Not Found: Профиль с указанным ID не найден или произошла ошибка при сохранении.{"success": false, "message": "Profile not found or failed to save current settings."}