# data

#### 1.Notes

定义了和数据相关的接口

#### 2.Api

## &#x20;批量写入

<mark style="color:green;">`POST`</mark> `/data/batchWrite`

向数据库中批量写入实时数据,如果itemValues应该分别为itemNames对应的slice和itemValue对应的slice 如果需要写入指定的时间戳,则第三个元素应为对应的时间戳,并且时间戳应该为year-month-day hh:mm:ss对 应的unixTimeStamp,如果没有指定则写入的时间戳为写入时的时间戳.写入的item只要有一个在数据库中不存在 写入就会失败

#### Request Body

| Name       | Type   | Description                      |
| ---------- | ------ | -------------------------------- |
| groupName  | string |                                  |
| itemValues | array  | \[\[]string,\[]string,\[]string] |

{% tabs %}
{% tab title="200 " %}

```
{"effectedRows": int}
```

{% endtab %}
{% endtabs %}

## &#x20;获取实时值

<mark style="color:green;">`POST`</mark> `/data/getRealTimeData`

获取指定item的实时值,如果item不存在,则返回的实时值为null

#### Request Body

| Name      | Type  | Description |
| --------- | ----- | ----------- |
| itemNames | array |             |

{% tabs %}
{% tab title="200 " %}

```
{"itemName1", v1, "itemName2": v2}
```

{% endtab %}
{% endtabs %}

## &#x20;获取历史值

<mark style="color:green;">`POST`</mark> `/data/getHistoricalData`

获取指定item在指定时间范围内指定取数间隔下的的历史值,startTime和endTime可以为多段时间戳,interval为对应的取数间隔,单位为s

#### Request Body

| Name       | Type  | Description |
| ---------- | ----- | ----------- |
| itemNames  | array |             |
| startTimes | array | \[]int      |
| endTimes   | array | \[]int      |
| intervals  | array | \[]int      |

{% tabs %}
{% tab title="200 " %}

```
{"item1": [[timeStamp...], [values...]]}
```

{% endtab %}
{% endtabs %}

## &#x20;获取指定时间戳的历史值

<mark style="color:green;">`POST`</mark> `/data/getHistoricalDataWithStamp`

&#x20;

#### Request Body

| Name       | Type  | Description |
| ---------- | ----- | ----------- |
| itemNames  | array |             |
| timeStamps | array |             |

{% tabs %}
{% tab title="200 " %}

```
{"item1": [[timeStamp...], [values...]]}
```

{% endtab %}
{% endtabs %}

## &#x20;获取指定条件下的历史数据

<mark style="color:green;">`POST`</mark> `/data/getHistoricalDataWithCondition`

在getHistoricalData的基础之上可以获取指定筛选条件的历史数据,filterCondition为筛选条件,可以是任何符合语法的js语句,需要注意的是如果和item相关 则形式应该为item\["item1"]>10之类,deadZones为item对应的死区个数,即当有多少个值是相同的时候,则认为这段数据是无效的.如果不提供filterCondition 或者filterCondition为空字符串则认为该项为true,如果不提供deadZones或者deadZones为\[],则认为该项为true,即不进行死区筛选

#### Request Body

| Name            | Type   | Description |
| --------------- | ------ | ----------- |
| filterCondition | string |             |
| deadZones       | array  |             |

{% tabs %}
{% tab title="200 " %}

```
{"item1": [[timeStamp...], [values...]]}
```

{% endtab %}
{% endtabs %}

&#x20;                                                                              [fork me on github](https://github.com/JustKeepSilence/gdb)
