REST API: Эндпоинты тегов и иерархических папок
API тегов и папок позволяет организовывать камеры в иерархические деревья папок и цветные категории тегов.
1. API тегов камер
1.1 Список тегов (GET /api/tags)
bash
curl -H "Authorization: Bearer <TOKEN>" http://localhost:8080/api/tagsОтвет (200 OK):
json
[
{ "id": "outdoor", "name": "Уличные камеры", "color": "#10B981" },
{ "id": "ptz", "name": "PTZ управление", "color": "#3B82F6" },
{ "id": "critical", "name": "Периметр", "color": "#EF4444" }
]1.2 Создание тега (POST /api/tags)
- Требуемая роль:
operator,adminилиservice
bash
curl -X POST http://localhost:8080/api/tags \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "id": "parking", "name": "Парковка", "color": "#F59E0B" }'1.3 Удаление тега (DELETE /api/tags/:id)
Удаляет тег из BadgerDB:
bash
curl -X DELETE http://localhost:8080/api/tags/parking \
-H "Authorization: Bearer <TOKEN>"Ответ (200 OK): {"message": "tag deleted"}.
2. API иерархических папок
2.1 Список папок (GET /api/folders)
bash
curl -H "Authorization: Bearer <TOKEN>" http://localhost:8080/api/foldersОтвет (200 OK):
json
[
{ "id": "hq", "name": "Главный офис", "parent_id": "" },
{ "id": "bldg-a", "name": "Корпус А", "parent_id": "hq" },
{ "id": "floor-2", "name": "2 этаж", "parent_id": "bldg-a" }
]2.2 Создание папки (POST /api/folders)
- Требуемая роль:
operator,adminилиservice
bash
curl -X POST http://localhost:8080/api/folders \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "id": "warehouse-east", "name": "Восточный склад", "parent_id": "" }'2.3 Удаление папки (DELETE /api/folders/:id)
Удаляет папку из BadgerDB:
bash
curl -X DELETE http://localhost:8080/api/folders/warehouse-east \
-H "Authorization: Bearer <TOKEN>"Ответ (200 OK): {"message": "folder deleted"}.