Данные

Запись и получение исторических данных.

Подробно работа с историческими данными и примеры использования ключей в запросе рассмотрены в разделе Исторические данные.

async tags_app_api_svc.data_get(q: str | None = None, payload: DataGet | None = None)

Запрос исторических данных.

Пример запроса в формате JSON.

http

GET /v1/data/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
    "tagId": ["<id_of_a_tag_to_read_from>"],
    "format": true,
    "actual": false,
    "count": 2,
    "start": "<start_of_a_period>",
    "finish": "<end_of_a_period>",
    "timeStep": 60000000,
    "maxCount": 1000,
    "value": 10
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "data": [
        {
            "tagId": "<id_of_a_tag>",
            "data": [
                [
                    1.0,
                    "<timestamp>",
                    null
                ],
                [
                    7.0,
                    "<timestamp>",
                    null
                ]
            ]
        }
    ]
}

Пример query запроса.

http

GET /v1/data/?q={"tagId":"<id_of_a_tag>","format":true,"actual":false,"count":100,"start":"<start_of_a_period>","finish":"<end_of_a_period>"} HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

{
    "data": [
        {
            "tagId": "<id_of_a_tag>",
            "data": [
                [
                    1.0,
                    "<timestamp>",
                    null
                ],
                [
                    7.0,
                    "<timestamp>",
                    null
                ]
            ]
        }
    ]
}

Параметры запроса:

  • tagId (str | [str]): тег или список тегов, по которым запрашиваются данные;

  • format (bool): флаг перевода меток времени в ответе в формат ISO8601;

  • actual (bool): если = true, то возвращаются только реально записанные в базу данные, без интерполируемых значений на границах диапазона;

  • count (int): количество значений тега, которое необходимо возвратить;

  • start (int | str): начало запрашиваемого периода;

  • finish (int | str): окончание запрашиваемого периода;

  • timeStep (int): шаг в микросекундах между соседними возвращаемыми значениями тега;

  • maxCount (int): максимальное количество значений одного тега в ответе на запрос;

  • value (any): фильтр на значения тега.

Ответ:

  • data (list) - возвращаемые данные;

  • detail (str) - пояснение к возникшей ошибке.

async tags_app_api_svc.data_set(payload: AllData)

Запись исторических данных тега.

http

POST /v1/data/ HTTP/1.1
Host: localhost
Accept: application/json
Content-Type: application/json
Authorization: No Auth

{
	"data":[{
	    "tagId":"<id_of_a_tag>",
	    "data": [
	        ["value", "<time_stamp>", 100]
	    ]
	}]
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Content-type: application/json

null

Параметры запроса:

  • data ([json]) - массив данных тегов; каждый элемент этого массива - json с данными одного тега. Json имеет формат:

    • tagId (str) - id тега;

    • data ([[value, timestamp, quality_code]]) - массив значений тега; каждое значение - массив из трёх элементов: значение тега, метка времени (целое число микросекунд или строка в формате ISO8601). В случае отсутствия метки времени берётся текущий момент времени. В случае отсутствия кода качества берётся значение null, означающее нормальное качество.

Ответ:

null