Kaiten

[PMO] База знаний функциональности (интернет)

To Kaiten

Методы

Базовые

Получить список моделей

GET/api/v1/models

По умолчанию список моделей отдаётся без их содержимого.
Для включения дочерних узлов модели в ответ необходимо использовать query-параметр ?with=data

JSON
[ { "_id": "60d5db392b370f0011cb2987", "name": "model 1", "base": "mqtt" }, { "_id": "6163dda4099a810011957be8", "name": "model 2", "base": "lorawan" }]

Получить информацию об одной модели

GET/api/v1/models/:id

По умолчанию модель отдаётся вместе с полем data.

JSON
[ { "_id": "60d5db392b370f0011cb2987", "name": "model 1", "base": "mqtt", "data": { "id": "root", "name": "[mqtt] model", "active": true, "type": "subsystem", "children": [...] } }]

Создать новую модель

POST/api/v1/models

Обязательные поля:

  • base - идентификатор базовой модели;

  • name - имя новой модели.

JSON
{ "base": "mqtt", "name": "test-model-01", "description": "Model of microcontroller"}

В ответе будет передана созданная модель, в формате аналогичном запросу одной модели

Изменить модель

PATCH/api/v1/models/:id

JSON
{ "name": "test-model-02", "description": "Model of sensor"}

Для изменения отдельных узлов внутри модели необходимо использовать API узлов модели

Удалить модель

DELETE/api/v1/models/:id

В случае, если существуют объекты использующие эту модель, ответ будет содержать ошибку:

JSON
{ "success": false, "message": "Unprocessable Entity", "tags": ["error_has_objects"]}

Узлы моделей

В запросах: - :id - идентификатор модели; - :node - идентификатор узла модели.

Создать новый узел

POST/api/v1/models/:id/nodes

Для того чтобы добавить новый узел в опреденное место модели нужно использовать query-параметр ?attachTo=:node с указанием идентификатора родительского узла, например ?attachTo=params или ?attachTo=cmds, иначе узел будет добавлен в корень.

Добавление нового узла происходит в конец списка дочерних элементов.
Для добавления узла в определённую позицию списка нужно использовать query-параметр ?atIndex=0 с указанием индекса нового элемента.

JSON
{ "id": "floorTemperature", "type": "argument", "name": "Floor Temperature", "unit": "temperature-celsius", "dataType": "number"}

Изменить узел

PATCH/api/v1/models/:id/nodes/:node

В теле запроса на изменение существующего узла укажите укажите поля, которые нужно обновить.

JSON
{ "name": "Floor Temperature (in Fahrenheits)", "unit": "temperature-fahrenheit"}

Удалить узел

DELETE/api/v1/models/:id/nodes/:node

Удаление узла модели происходит безвозвратно