Создать класс свойства

Создать новый класс свойства и возвращает его в формате JSON.

Запрос

HTTP Запрос

POST /node/api/property-classes

Права

manage-property-classes

Тело запроса

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

Модель класса свойств
Поле Тип Описание

name

String

Имя класса свойств.

description

String

Описание класса свойств.

value_type_id

String

ID типа значения, которое использует это свойство.

value

Object

Стандартное значение этого свойства.

multiple

Boolean

Использует ли этот класс несколько значений для каждого ключа.

source

String

ID словаря, которые используется как источник значений для типа значения dictionary.

mask

String

Регулярное выражение, которое фильтрует вводимые пользователем значения.

system

Boolean

Является ли этот класс системным.

id

String

ID класса свойств.

multiple_separator

String

Строка, которая разделяет выбранные значения при отображении в интерфейсе.

value_display_template

String

Шаблон отображения значений. Для получения значения свойства можно использовать макрос {{0}}.

Словари используют следующую индексацию – ключ можно получить с помощью макроса {{0}}; {{1}}{{N}} используются для получения соответствущих значений.

{
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": ""
}

Ответ

Возвращает созданный класс свойства в формате JSON.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/property-classes

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    -d @- <<EOF
{
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": ""
}
EOF
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/property-classes";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);

let data = JSON.stringify({
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": ""
});

let requestOptions = {
    method: "POST",
    headers: headers,
    body: data
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/property-classes";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

let data = JSON.stringify({
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": ""
});

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/property-classes"

body = {
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": ""
}

response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)

Ответ

{
    "name": "Devices",
    "description": "Water monitoring devices",
    "value_type_id": "dictionary",
    "value": "",
    "multiple": true,
    "multiple_separator": ";",
    "value_display_template": "Device: {{1}} ({{2}})",
    "source": "66e41e89029ed40f1105e59e",
    "mask": "",
    "id": "66e9850cbb17541c30c88348"
}