You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/11/23 09:20:28 UTC

[iotdb] 01/01: Unify Column Header in RestApi

This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch rename_rest_header
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 2e3749b1684480bcfbb33270e278e1c6efde95db
Author: HTHou <hh...@outlook.com>
AuthorDate: Wed Nov 23 17:20:13 2022 +0800

    Unify Column Header in RestApi
---
 docs/UserGuide/API/RestService.md                  | 60 +++++++++---------
 docs/UserGuide/Write-Data/REST-API.md              |  6 +-
 docs/zh/UserGuide/API/RestService.md               | 74 +++++++++++-----------
 docs/zh/UserGuide/Write-Data/REST-API.md           |  6 +-
 grafana-plugin/go.mod                              |  4 +-
 grafana-plugin/go.sum                              | 36 +++++++++--
 openapi/src/main/openapi3/iotdb-rest.yaml          | 17 ++---
 .../iotdb/db/conf/rest/IoTDBRestServiceConfig.java |  2 +-
 .../rest/handler/RequestValidationHandler.java     | 14 ++--
 .../rest/handler/StatementConstructionHandler.java |  2 +-
 10 files changed, 125 insertions(+), 96 deletions(-)

diff --git a/docs/UserGuide/API/RestService.md b/docs/UserGuide/API/RestService.md
index 2f1188a6f1..9717cb55a3 100644
--- a/docs/UserGuide/API/RestService.md
+++ b/docs/UserGuide/API/RestService.md
@@ -138,16 +138,16 @@ Request path: http://ip:port/rest/v1/query
 Parameter Description:
 
 | parameter name | parameter type | required | parameter description                                        |
-| -------------- | -------------- | -------- | ------------------------------------------------------------ |
+|----------------| -------------- | -------- | ------------------------------------------------------------ |
 | sql            | string         | yes      |                                                              |
-| rowLimit       | integer        | no       | The maximum number of rows in the result set that can be returned by a query. <br />If this parameter is not set, the `rest_query_default_row_size_limit` of the configuration file will be used as the default value. <br /> When the number of rows in the returned result set exceeds the limit, the status code `411` will be returned. |
+| row_limit      | integer        | no       | The maximum number of rows in the result set that can be returned by a query. <br />If this parameter is not set, the `rest_query_default_row_size_limit` of the configuration file will be used as the default value. <br /> When the number of rows in the returned result set exceeds the limit, the status code `411` will be returned. |
 
 Response parameters:
 
 | parameter name | parameter type | parameter description                                        |
-| -------------- | -------------- | ------------------------------------------------------------ |
+|----------------| -------------- | ------------------------------------------------------------ |
 | expressions    | array          | Array of result set column names for data query, `null` for metadata query |
-| columnNames    | array          | Array of column names for metadata query result set, `null` for data query |
+| column_names   | array          | Array of column names for metadata query result set, `null` for data query |
 | timestamps     | array          | Timestamp column, `null` for metadata query                  |
 | values         | array          | A two-dimensional array, the first dimension has the same length as the result set column name array, and the second dimension array represents a column of the result set |
 
@@ -168,7 +168,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "root.sg27.s4",
     "root.sg27.s3 + 1"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     1635232143960,
     1635232153960
@@ -199,7 +199,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "child paths"
   ],
   "timestamps": null,
@@ -221,7 +221,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "child nodes"
   ],
   "timestamps": null,
@@ -243,7 +243,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "database",
     "ttl"
   ],
@@ -270,7 +270,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "database",
     "ttl"
   ],
@@ -295,7 +295,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "function name",
     "function type",
     "class name (UDF)"
@@ -333,7 +333,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "alias",
     "database",
@@ -406,7 +406,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "alias",
     "database",
@@ -479,7 +479,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count"
   ],
   "timestamps": null,
@@ -500,7 +500,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count"
   ],
   "timestamps": null,
@@ -521,7 +521,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "devices",
     "isAligned"
   ],
@@ -548,7 +548,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "devices",
     "database",
     "isAligned"
@@ -580,7 +580,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "user"
   ],
   "timestamps": null,
@@ -604,7 +604,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "count(root.sg27.s3)",
     "count(root.sg27.s4)"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     0
   ],
@@ -628,7 +628,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count(root.sg27.*)",
     "count(root.sg28.*)"
   ],
@@ -656,7 +656,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "count(root.sg27.s3)",
     "count(root.sg27.s4)"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     1635232143960,
     1635232144960,
@@ -707,7 +707,7 @@ curl -H "Content-Type:application/json"  -H "Authorization:Basic cm9vdDpyb290" -
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "value",
     "dataType"
@@ -814,18 +814,18 @@ Request path: http://ip:port/rest/v1/insertTablet
 
 Parameter Description:
 
-|parameter name  |parameter type |is required|parameter describe|
-|:--- | :--- | :---| :---|
-|  timestamps | array | yes |  Time column  |
-|  measurements | array | yes  | The name of the measuring point |
-| dataTypes | array | yes  | The data type |
-|  values | array | yes  | Value columns, the values in each column can be `null` |
-|  isAligned | boolean | yes  | Whether to align the timeseries |
-|  deviceId | string | yes  | Device name |
+| parameter name |parameter type |is required|parameter describe|
+|:---------------| :--- | :---| :---|
+| timestamps     | array | yes |  Time column  |
+| measurements   | array | yes  | The name of the measuring point |
+| data_types     | array | yes  | The data type |
+| values         | array | yes  | Value columns, the values in each column can be `null` |
+| is_aligned     | boolean | yes  | Whether to align the timeseries |
+| device         | string | yes  | Device name |
 
 Example request:
 ```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"timestamps":[1635232143960,1635232153960],"measurements":["s3","s4"],"dataTypes":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"isAligned":false,"deviceId":"root.sg27"}' http://127.0.0.1:18080/rest/v1/insertTablet
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"timestamps":[1635232143960,1635232153960],"measurements":["s3","s4"],"data_types":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"is_aligned":false,"device":"root.sg27"}' http://127.0.0.1:18080/rest/v1/insertTablet
 ```
 
 Sample response:
diff --git a/docs/UserGuide/Write-Data/REST-API.md b/docs/UserGuide/Write-Data/REST-API.md
index a298905741..71927c3dc5 100644
--- a/docs/UserGuide/Write-Data/REST-API.md
+++ b/docs/UserGuide/Write-Data/REST-API.md
@@ -36,7 +36,7 @@ Example:
             "temperature",
             "status"
       ],
-      "dataTypes": [
+      "data_types": [
             "FLOAT",
             "BOOLEAN"
       ],
@@ -52,7 +52,7 @@ Example:
                   true
             ]
       ],
-      "isAligned": false,
-      "deviceId": "root.ln.wf01.wt01"
+      "is_aligned": false,
+      "device": "root.ln.wf01.wt01"
 }
 ```
\ No newline at end of file
diff --git a/docs/zh/UserGuide/API/RestService.md b/docs/zh/UserGuide/API/RestService.md
index ae80ecd7dd..5c9fac9ed1 100644
--- a/docs/zh/UserGuide/API/RestService.md
+++ b/docs/zh/UserGuide/API/RestService.md
@@ -131,19 +131,19 @@ query 接口可以用于处理数据查询和元数据查询。
 
 参数说明:
 
-|参数名称  |参数类型  |是否必填|参数描述|
-| ------------ | ------------ | ------------ |------------ |
-|  sql | string | 是  |   |
-| rowLimit | integer | 否 | 一次查询能返回的结果集的最大行数。<br />如果不设置该参数,将使用配置文件的  `rest_query_default_row_size_limit` 作为默认值。<br />当返回结果集的行数超出限制时,将返回状态码 `411`。 |
+| 参数名称      |参数类型  |是否必填|参数描述|
+|-----------| ------------ | ------------ |------------ |
+| sql       | string | 是  |   |
+| row_limit | integer | 否 | 一次查询能返回的结果集的最大行数。<br />如果不设置该参数,将使用配置文件的  `rest_query_default_row_size_limit` 作为默认值。<br />当返回结果集的行数超出限制时,将返回状态码 `411`。 |
 
 响应参数:
 
-|参数名称  |参数类型  |参数描述|
-| ------------ | ------------ | ------------|
-| expressions | array | 用于数据查询时结果集列名的数组,用于元数据查询时为`null`|
-| columnNames | array | 用于元数据查询结果集列名数组,用于数据查询时为`null` |
-| timestamps | array | 时间戳列,用于元数据查询时为`null` |
-|values|array|二维数组,第一维与结果集列名数组的长度相同,第二维数组代表结果集的一列|
+| 参数名称         |参数类型  |参数描述|
+|--------------| ------------ | ------------|
+| expressions  | array | 用于数据查询时结果集列名的数组,用于元数据查询时为`null`|
+| column_names | array | 用于元数据查询结果集列名数组,用于数据查询时为`null` |
+| timestamps   | array | 时间戳列,用于元数据查询时为`null` |
+| values       |array|二维数组,第一维与结果集列名数组的长度相同,第二维数组代表结果集的一列|
 
 请求示例如下所示:
 
@@ -163,7 +163,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "root.sg27.s4",
     "root.sg27.s3 + 1"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     1635232143960,
     1635232153960
@@ -195,7 +195,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "child paths"
   ],
   "timestamps": null,
@@ -218,7 +218,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "child nodes"
   ],
   "timestamps": null,
@@ -241,7 +241,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "database",
     "ttl"
   ],
@@ -269,7 +269,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "database",
     "ttl"
   ],
@@ -295,7 +295,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "function name",
     "function type",
     "class name (UDF)"
@@ -306,7 +306,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
       "ABS",
       "ACOS",
       "ASIN",
-       ...
+      ...
     ],
     [
       "built-in UDTF",
@@ -334,7 +334,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "alias",
     "database",
@@ -408,7 +408,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "alias",
     "database",
@@ -482,7 +482,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count"
   ],
   "timestamps": null,
@@ -504,7 +504,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count"
   ],
   "timestamps": null,
@@ -526,7 +526,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "devices",
     "isAligned"
   ],
@@ -554,7 +554,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "devices",
     "database",
     "isAligned"
@@ -587,7 +587,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "user"
   ],
   "timestamps": null,
@@ -612,7 +612,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "count(root.sg27.s3)",
     "count(root.sg27.s4)"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     0
   ],
@@ -637,7 +637,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "count(root.sg27.*)",
     "count(root.sg28.*)"
   ],
@@ -666,7 +666,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
     "count(root.sg27.s3)",
     "count(root.sg27.s4)"
   ],
-  "columnNames": null,
+  "column_names": null,
   "timestamps": [
     1635232143960,
     1635232144960,
@@ -718,7 +718,7 @@ curl -H "Content-Type:application/json"  -H "Authorization:Basic cm9vdDpyb290" -
 ```json
 {
   "expressions": null,
-  "columnNames": [
+  "column_names": [
     "timeseries",
     "value",
     "dataType"
@@ -828,18 +828,18 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
 
 参数说明:
 
-|参数名称  |参数类型  |是否必填|参数描述|
-| ------------ | ------------ | ------------ |------------ |
-|  timestamps | array | 是 |  时间列  |
-|  measurements | array | 是  | 测点名称 |
-| dataTypes | array | 是  | 数据类型  |
-|  values | array | 是  | 值列,每一列中的值可以为 `null` |
-|  isAligned | boolean | 是  | 是否是对齐时间序列 |
-|  deviceId | string | 是  | 设备名称 |
+| 参数名称         |参数类型  |是否必填|参数描述|
+|--------------| ------------ | ------------ |------------ |
+| timestamps   | array | 是 |  时间列  |
+| measurements | array | 是  | 测点名称 |
+| data_types   | array | 是  | 数据类型  |
+| values       | array | 是  | 值列,每一列中的值可以为 `null` |
+| is_aligned   | boolean | 是  | 是否是对齐时间序列 |
+| device       | string | 是  | 设备名称 |
 
 请求示例:
 ```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"timestamps":[1635232143960,1635232153960],"measurements":["s3","s4"],"dataTypes":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"isAligned":false,"deviceId":"root.sg27"}' http://127.0.0.1:18080/rest/v1/insertTablet
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"timestamps":[1635232143960,1635232153960],"measurements":["s3","s4"],"data_types":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"is_aligned":false,"device":"root.sg27"}' http://127.0.0.1:18080/rest/v1/insertTablet
 ```
 
 响应参数:
diff --git a/docs/zh/UserGuide/Write-Data/REST-API.md b/docs/zh/UserGuide/Write-Data/REST-API.md
index f53a7641c2..edcd552c95 100644
--- a/docs/zh/UserGuide/Write-Data/REST-API.md
+++ b/docs/zh/UserGuide/Write-Data/REST-API.md
@@ -35,7 +35,7 @@
             "temperature",
             "status"
       ],
-      "dataTypes": [
+      "data_types": [
             "FLOAT",
             "BOOLEAN"
       ],
@@ -51,7 +51,7 @@
                   true
             ]
       ],
-      "isAligned": false,
-      "deviceId": "root.ln.wf01.wt01"
+      "is_aligned": false,
+      "device": "root.ln.wf01.wt01"
 }
 ```
diff --git a/grafana-plugin/go.mod b/grafana-plugin/go.mod
index e6d4a76021..fa2113ac02 100644
--- a/grafana-plugin/go.mod
+++ b/grafana-plugin/go.mod
@@ -18,6 +18,6 @@ module github.com/grafana/grafana-starter-datasource-backend
 go 1.16
 
 require (
-	github.com/grafana/grafana-plugin-sdk-go v0.139.0
-	github.com/magefile/mage v1.13.0 // indirect
+	github.com/grafana/grafana-plugin-sdk-go v0.144.0
+	github.com/magefile/mage v1.14.0 // indirect
 )
diff --git a/grafana-plugin/go.sum b/grafana-plugin/go.sum
index 4dc5cdec48..2d01c214af 100644
--- a/grafana-plugin/go.sum
+++ b/grafana-plugin/go.sum
@@ -32,6 +32,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
 cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
+github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
@@ -65,6 +66,8 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
 github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
 github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
+github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -86,6 +89,8 @@ github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/getkin/kin-openapi v0.94.0 h1:bAxg2vxgnHHHoeefVdmGbR+oxtJlcv5HsJJa3qmAHuo=
 github.com/getkin/kin-openapi v0.94.0/go.mod h1:LWZfzOd7PRy8GJ1dJ6mCU6tNdSfOwRac1BUPam4aw6Q=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
@@ -175,10 +180,12 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg=
+github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
 github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/grafana/grafana-plugin-sdk-go v0.139.0 h1:2RQKM2QpSaWTtaGN6sK+R7LO7zykOeTYF0QkAMA7JsI=
-github.com/grafana/grafana-plugin-sdk-go v0.139.0/go.mod h1:Y+Ps2sesZ62AyCnX+hzrYnyDQYe/ZZl+A8yKLOBm12c=
+github.com/grafana/grafana-plugin-sdk-go v0.144.0 h1:NsuK9AKWeWBbuNREsF4hrLA3TnYPPpDJTqcPqm288aw=
+github.com/grafana/grafana-plugin-sdk-go v0.144.0/go.mod h1:dFof/7GenWBFTmrfcPRCpLau7tgIED0ykzupWAlB0o0=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
@@ -206,6 +213,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
 github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
+github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE=
+github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
 github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
@@ -222,9 +231,9 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/magefile/mage v1.12.1/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
-github.com/magefile/mage v1.13.0 h1:XtLJl8bcCM7EFoO8FyH8XK3t7G5hQAeK+i4tq+veT9M=
 github.com/magefile/mage v1.13.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
+github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo=
+github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
@@ -296,10 +305,18 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
 github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
+github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
+github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
+github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
+github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 h1:Jpy1PXuP99tXNrhbq2BaPz9B+jNAvH1JPQQpG/9GCXY=
+github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c h1:Ho+uVpkel/udgjbwB5Lktg9BtvJSh2DT0Hi6LPSyI2w=
+github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@@ -310,6 +327,14 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s=
 github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
+github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8 h1:aVGB3YnaS/JNfOW3tiHIlmNmTDg618va+eT0mVomgyI=
+github.com/unknwon/bra v0.0.0-20200517080246-1e3013ecaff8/go.mod h1:fVle4kNr08ydeohzYafr20oZzbAkhQT39gKK/pFQ5M4=
+github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
+github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
+github.com/unknwon/log v0.0.0-20150304194804-e617c87089d3 h1:4EYQaWAatQokdji3zqZloVIW/Ke1RQjYw2zHULyrHJg=
+github.com/unknwon/log v0.0.0-20150304194804-e617c87089d3/go.mod h1:1xEUf2abjfP92w2GZTV+GgaRxXErwRXcClbUwrNJffU=
+github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
+github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -440,6 +465,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191020152052-9984515f0562/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -635,6 +661,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fsnotify/fsnotify.v1 v1.4.7 h1:XNNYLJHt73EyYiCZi6+xjupS9CpvmiDgjPTAjrBlQbo=
+gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/openapi/src/main/openapi3/iotdb-rest.yaml b/openapi/src/main/openapi3/iotdb-rest.yaml
index 8bdb9dc4e5..b9cd29ff2c 100644
--- a/openapi/src/main/openapi3/iotdb-rest.yaml
+++ b/openapi/src/main/openapi3/iotdb-rest.yaml
@@ -23,6 +23,7 @@ info:
   description: IoTDB Rest API for Grafana, Prometheus, etc..
   license:
     name: Apache 2.0
+    url: https://www.apache.org/licenses/LICENSE-2.0.html
   version: 1.0.0
 servers:
 - url: http://127.0.0.1:18080/
@@ -173,7 +174,7 @@ components:
       properties:
         sql:
           type: string
-        rowLimit:
+        row_limit:
           type: integer
           format: int32
 
@@ -190,7 +191,7 @@ components:
           type: array
           items:
             type: string
-        dataTypes:
+        data_types:
           type: array
           items:
             type: string
@@ -200,9 +201,9 @@ components:
             type: array
             items:
               type: object
-        isAligned:
+        is_aligned:
           type: boolean
-        deviceId:
+        device:
           type: string
 
     ExecutionStatus:
@@ -221,7 +222,7 @@ components:
           type: array
           items:
             type: string
-        columnNames:
+        column_names:
           type: array
           items:
             type: string
@@ -244,7 +245,7 @@ components:
           type: array
           items:
             type: string
-        prefixPath:
+        prefix_path:
           type: array
           items:
             type: string
@@ -252,9 +253,9 @@ components:
           type: string
         control:
            type: string
-        startTime:
+        start_time:
           type: number
-        endTime:
+        end_time:
           type: number
 
     VariablesResult:
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
index eb4af414c6..6e29fd55a3 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceConfig.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.conf.rest;
 public class IoTDBRestServiceConfig {
   static final String CONFIG_NAME = "iotdb-common.properties";
   /** if the enableRestService is true, we will start REST Service */
-  private boolean enableRestService = false;
+  private boolean enableRestService = true;
 
   /** set the REST Service port. */
   private int restServicePort = 18080;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java
index 2837fbc6e1..27b77596a5 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java
@@ -32,22 +32,22 @@ public class RequestValidationHandler {
   public static void validateSQL(SQL sql) {
     Objects.requireNonNull(sql.getSql(), "sql should not be null");
     if (sql.getRowLimit() != null) {
-      Validate.isTrue(sql.getRowLimit() > 0, "rowLimit should be positive");
+      Validate.isTrue(sql.getRowLimit() > 0, "row_limit should be positive");
     }
   }
 
   public static void validateInsertTabletRequest(InsertTabletRequest insertTabletRequest) {
     Objects.requireNonNull(insertTabletRequest.getTimestamps(), "timestamps should not be null");
-    Objects.requireNonNull(insertTabletRequest.getIsAligned(), "isAligned should not be null");
-    Objects.requireNonNull(insertTabletRequest.getDeviceId(), "deviceId should not be null");
-    Objects.requireNonNull(insertTabletRequest.getDataTypes(), "dataTypes should not be null");
+    Objects.requireNonNull(insertTabletRequest.getIsAligned(), "is_aligned should not be null");
+    Objects.requireNonNull(insertTabletRequest.getDevice(), "device should not be null");
+    Objects.requireNonNull(insertTabletRequest.getDataTypes(), "data_types should not be null");
     Objects.requireNonNull(insertTabletRequest.getValues(), "values should not be null");
   }
 
   public static void validateExpressionRequest(ExpressionRequest expressionRequest) {
     Objects.requireNonNull(expressionRequest.getExpression(), "expression should not be null");
-    Objects.requireNonNull(expressionRequest.getPrefixPath(), "prefixPath should not be null");
-    Objects.requireNonNull(expressionRequest.getStartTime(), "startTime should not be null");
-    Objects.requireNonNull(expressionRequest.getEndTime(), "endTime should not be null");
+    Objects.requireNonNull(expressionRequest.getPrefixPath(), "prefix_path should not be null");
+    Objects.requireNonNull(expressionRequest.getStartTime(), "start_time should not be null");
+    Objects.requireNonNull(expressionRequest.getEndTime(), "end_time should not be null");
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java
index ad53165282..29bd53e9a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java
@@ -38,7 +38,7 @@ public class StatementConstructionHandler {
       throws IllegalPathException, WriteProcessRejectException {
     // construct insert statement
     InsertTabletStatement insertStatement = new InsertTabletStatement();
-    insertStatement.setDevicePath(new PartialPath(insertTabletRequest.getDeviceId()));
+    insertStatement.setDevicePath(new PartialPath(insertTabletRequest.getDevice()));
     insertStatement.setMeasurements(insertTabletRequest.getMeasurements().toArray(new String[0]));
     List<List<Object>> rawData = insertTabletRequest.getValues();
     List<String> rawDataType = insertTabletRequest.getDataTypes();