Skip to main content
Skip table of contents

Пoлучение дерева камер

Получение дерева камер

Логика построения дерева разделена на 2 возможных сценария, в зависимости от настроенной env переменной TREE_CAMERA_SINGLE_REQUEST_MAX_CAMERAS_COUNT.

Если количество камер пользователя больше чем указано в env переменной TREE_CAMERA_SINGLE_REQUEST_MAX_CAMERAS_COUNT, то дерево будет строиться по следующему принципу:

Данный запрос возвращает список групп <i>N</i>-ого уровня вложенности. Для получения группы следующего уровня вложенности нужно повторить этот же запрос, указав дополнительно параметр group_id родительской группы.

В данном сценарии параметр children не учитывается, он всегда null.

С помощью параметра has_items можно понять, содержит ли группа камеры. Параметр has_items = true означает, что данная группа содержит камеры и больше не нужно запрашивать дочерние группы.

Если количество камер меньше чем в env переменной TREE_CAMERA_SINGLE_REQUEST_MAX_CAMERAS_COUNT, то все дерево будет возвращаться за 1 запрос.

Если параметр children пуст и там нет элементов, это значит, что группа конечная.

Если у пользователя есть бриджи с камерами, то у него добавится папка Устройства и в ней папки для каждого бриджа, которые будут называться так же как и бридж. Эти группы являются конечными, и для получения камер внутри необходимо делать отдельный запрос описанный ниже.

Если у пользователя есть камеры с установленным агентом, то у него добавится папка Камеры внутри папки Устройства. Эта группа является конечной, и для получения камер внутри необходимо делать отдельный запрос описанный ниже.

В обоих случаях для получения списка камер из конечной группы необходимо использовать запрос на список камер в группе, с указанием параметра group_id и параметра search, в случае, если ранее по дереву камер осуществлялся поиск VMS Client/Камеры клиента/Общие запросы/Список камер в группе клиента.

GET /api/v2/cameras/tree

Параметры метода

string search – поиск по адресу и названию камеры.

int group_id – ID родительской группы.

200 OK

Возвращает JSON объект дерева одного уровня вложенности

JSON
[
    {
        "id": 1,
        "name": "Тестовые камеры",
        "children": null,
        "has_items": false
    }
]

200 OK

Возвращает JSON объект дерева полностью

JSON
[
    {
        "id": 1,
        "name": "Тестовые камеры",
        "children": [
            {
                "id": 7,
                "name": "fake stream",
                "children": null,
                "has_items": true
            },
            {
                "id": 3,
                "name": "какие то камеры",
                "children": null,
                "has_items": true
            },
            {
                "id": 4,
                "name": "камеры с архивом",
                "children": null,
                "has_items": false
            }
        ],
        "has_items": false
    }
]

401 Unauthorized

Токен авторизации не передан или не валидный

422 Unprocessable Entity

Возвращает JSON объект с ошибкой.

JSON
{
    "message": "Тут не будет информативного сообщения",
    "errors": {
        "any_key": [
            "Тут будет описана причина ошибки"
        ]
    }
}
cURL
BASH
curl -k --request POST \
	--url 'https://your-domain/api/v2/cameras/tree' \
	--header 'Content-Type: application/json' \
	--header 'Accept: application/json' \
	--data '{
    "search": "string",
    "group_id": 0
}'
PHP
PHP
$data = array (
  'search' => 'string',
  'group_id' => 0,
);
$context = stream_context_create([
	'ssl'=>['verify_peer' => false],
	'http' => [
		'method' => 'GET',
		'header' => "Content-Type: application/json\r
Accept: application/json",
		'content'=>json_encode($data)
	]
]);
$result = file_get_contents('https://your-domain/api/v2/cameras/tree', false, $context);
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.