Данные
Запись и получение исторических данных.
Подробно работа с историческими данными и примеры использования ключей в запросе рассмотрены в разделе Исторические данные.
- async tags_app_api_svc.data_get(q: str | None = None, payload: DataGet | None = None, error_handler: ErrorHandler = Depends(ErrorHandler))
Запрос исторических данных.
Пример запроса в формате JSON.
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 }
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 запроса.
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
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, error_handler: ErrorHandler = Depends(ErrorHandler))
Запись исторических данных тега.
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] ] }] }
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