.. NodaLogic documentation master file, created by sphinx-quickstart on Wed Nov 5 07:29:33 2025. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Синхронизация узлов ======================= Передача узлов на сервер через API ---------------------------------------- Класс, объявленный в конфигурации, автоматически имеет API, описание которого можно взять в конструкторе (оно там сгенерировано с учетом идентификаторов), а в общем виде оно такое: Добавление/обновление узлов на сервере ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``POST /api/config/ /node/`` .. code-block:: JSON [{ "_id": "node_id", "field1": "value1", "field2": "value2" }] Вернуть все узлы класса ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``GET /api/config//node/`` Зарегистрировать все узлы в комнате ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``POST /api/config//node//register/`` Зарегистрировать определенные узлы в комнате ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``POST /api/config//node//register/`` .. code-block:: JSON ["node_id_1","node_id_2"] Working with specific node ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Get specific node : ``GET /api/config//node//`` Update _data in specific node : ``PUT /api/config// /node//`` Delete specific node : ``DELETE /api/config//node//`` Как видно, при передаче через API, класс и конфигурация определены в запросе, т.е. предполагается, что на момент обращения на API конфигурация с классами уже есть на сервере. Тоже самое на устройстве – register зарегистрирует узлы к передаче на устройства, но на устройстве должен быть класс этих узлов, иначе узлы не будут приняты. Т.е. конфигурация с соответствующими классами должна стоять на устройстве. Форматы передачи данных через файлы включают сами данные узла и ссылку на класс, который можно откуда то скачать. Как вариант, если совсем нет интернета, то можно сначала поставить конфигурацию в репо, а потом принять файлы с узлами. Передача данных между сервером и устройствами через Rooms ----------------------------------------------------------------------- Для того, чтобы оперативно получать данные с сервера, мобильные клиенты группами объединяются в так называемые "комнаты" -постоянно поддерживаемое WebSocket-соединение. Для этого на сервере надо создать обычную комнату и присоединить к ней устройства путем сканирования QR-кода комнаты Через этот механизм работает: * передача узлов на сервер * выполнение методов API описано в предыдущем разделе. Для того, чтобы устройства получили объекты, эти объекты должны быть "зарегистрированы" Передача узлов на устройство через файлы --------------------------------------------- Если нет интернета либо не хочется использовать rooms, можно передать файлы на устройство люым способом и либо "Открыть" либо "Поделиться" с NodaLogic. Это должен быть *.nl файл особого формата, в обязательном порядке содержащий ссылку на класс в формате ``$<имя класса>`` и _data. Пример такого формата: .. code-block:: Python [{ "_id":"1010", "_class":"885a12de-2bb5-4222-a671-9a7286902938$MyOrder", "_data":{ "order_number":"00-5000", "_cover":[["@order_number"]] } } ]