You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2023/03/29 05:38:27 UTC
[iotdb] 03/03: [IOTDB-5687][REST Service] OpenAPI v2 interface (#9472)
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch iotdb-5687-1.1
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 7dd92f75665e60190af3ce0f2007129d900d7068
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Wed Mar 29 13:38:00 2023 +0800
[IOTDB-5687][REST Service] OpenAPI v2 interface (#9472)
---
.../API/{RestService.md => RestServiceV1.md} | 46 ++++++++--------
.../API/{RestService.md => RestServiceV2.md} | 50 ++++++++---------
docs/UserGuide/Query-Data/Overview.md | 2 +-
docs/UserGuide/Write-Data/REST-API.md | 2 +-
.../API/{RestService.md => RestServiceV1.md} | 46 ++++++++--------
.../API/{RestService.md => RestServiceV2.md} | 50 ++++++++---------
docs/zh/UserGuide/Query-Data/Overview.md | 2 +-
docs/zh/UserGuide/Write-Data/REST-API.md | 2 +-
grafana-plugin/pkg/plugin/plugin.go | 8 +--
openapi/pom.xml | 56 ++++++++++++++++++-
openapi/src/main/openapi3/iotdb_rest_common.yaml | 63 ++++++++++++++++++++++
.../{iotdb-rest.yaml => iotdb_rest_v1.yaml} | 35 +++++-------
.../{iotdb-rest.yaml => iotdb_rest_v2.yaml} | 35 +++++-------
.../rest/handler/AuthorizationHandler.java | 8 ++-
.../rest/{ => v1}/handler/ExceptionHandler.java | 10 ++--
.../{ => v1}/handler/ExecuteStatementHandler.java | 2 +-
.../rest/{ => v1}/handler/QueryDataSetHandler.java | 24 ++++-----
.../{ => v1}/handler/RequestValidationHandler.java | 22 ++++----
.../handler/StatementConstructionHandler.java | 6 +--
.../rest/{ => v1}/impl/GrafanaApiServiceImpl.java | 25 ++++-----
.../rest/{ => v1}/impl/RestApiServiceImpl.java | 20 +++----
.../rest/{ => v2}/handler/ExceptionHandler.java | 2 +-
.../{ => v2}/handler/ExecuteStatementHandler.java | 2 +-
.../rest/{ => v2}/handler/QueryDataSetHandler.java | 26 ++++-----
.../{ => v2}/handler/RequestValidationHandler.java | 8 +--
.../handler/StatementConstructionHandler.java | 4 +-
.../rest/{ => v2}/impl/GrafanaApiServiceImpl.java | 25 ++++-----
.../rest/{ => v2}/impl/RestApiServiceImpl.java | 20 +++----
site/src/main/.vuepress/config.js | 6 ++-
29 files changed, 351 insertions(+), 256 deletions(-)
diff --git a/docs/UserGuide/API/RestService.md b/docs/UserGuide/API/RestServiceV1.md
similarity index 93%
copy from docs/UserGuide/API/RestService.md
copy to docs/UserGuide/API/RestServiceV1.md
index 9717cb55a3..2d4d2b8c5e 100644
--- a/docs/UserGuide/API/RestService.md
+++ b/docs/UserGuide/API/RestServiceV1.md
@@ -140,14 +140,14 @@ Parameter Description:
| parameter name | parameter type | required | parameter description |
|----------------| -------------- | -------- | ------------------------------------------------------------ |
| sql | string | yes | |
-| 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. |
+| 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. |
Response parameters:
| parameter name | parameter type | parameter description |
|----------------| -------------- | ------------------------------------------------------------ |
| expressions | array | Array of result set column names for data query, `null` for metadata query |
-| column_names | array | Array of column names for metadata query result set, `null` for data query |
+| columnNames | 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"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
1635232143960,
1635232153960
@@ -199,7 +199,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"child paths"
],
"timestamps": null,
@@ -221,7 +221,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"child nodes"
],
"timestamps": null,
@@ -243,7 +243,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"database",
"ttl"
],
@@ -270,7 +270,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"database",
"ttl"
],
@@ -295,7 +295,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"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,
- "column_names": [
+ "columnNames": [
"timeseries",
"alias",
"database",
@@ -406,7 +406,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"timeseries",
"alias",
"database",
@@ -479,7 +479,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"count"
],
"timestamps": null,
@@ -500,7 +500,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"count"
],
"timestamps": null,
@@ -521,7 +521,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"devices",
"isAligned"
],
@@ -548,7 +548,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"devices",
"database",
"isAligned"
@@ -580,7 +580,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"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)"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
0
],
@@ -628,7 +628,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"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)"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
1635232143960,
1635232144960,
@@ -707,7 +707,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"timeseries",
"value",
"dataType"
@@ -818,14 +818,14 @@ Parameter Description:
|:---------------| :--- | :---| :---|
| timestamps | array | yes | Time column |
| measurements | array | yes | The name of the measuring point |
-| data_types | array | yes | The data type |
+| dataTypes | 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 |
+| isAligned | boolean | yes | Whether to align the timeseries |
+| deviceId | 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"],"data_types":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"is_aligned":false,"device":"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"],"dataTypes":["INT32","BOOLEAN"],"values":[[11,null],[false,true]],"isAligned":false,"deviceId":"root.sg27"}' http://127.0.0.1:18080/rest/v1/insertTablet
```
Sample response:
diff --git a/docs/UserGuide/API/RestService.md b/docs/UserGuide/API/RestServiceV2.md
similarity index 94%
rename from docs/UserGuide/API/RestService.md
rename to docs/UserGuide/API/RestServiceV2.md
index 9717cb55a3..0b3aa050cb 100644
--- a/docs/UserGuide/API/RestService.md
+++ b/docs/UserGuide/API/RestServiceV2.md
@@ -133,7 +133,7 @@ Request method: `POST`
Request header: `application/json`
-Request path: http://ip:port/rest/v1/query
+Request path: http://ip:port/rest/v2/query
Parameter Description:
@@ -158,7 +158,7 @@ Tip: Statements like `select * from root.xx.**` are not recommended because thos
**Expression query**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4, s3 + 1 from root.sg27 limit 2"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4, s3 + 1 from root.sg27 limit 2"}' http://127.0.0.1:18080/rest/v2/query
````
```json
@@ -193,7 +193,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show child paths**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child paths root"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child paths root"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -215,7 +215,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show child nodes**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child nodes root"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child nodes root"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -237,7 +237,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show all ttl**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show all ttl"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show all ttl"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -264,7 +264,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show ttl**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show ttl on root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show ttl on root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -289,7 +289,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show functions**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show functions"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show functions"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -327,7 +327,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show timeseries**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show timeseries"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show timeseries"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -400,7 +400,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show latest timeseries**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show latest timeseries"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show latest timeseries"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -473,7 +473,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Count timeseries**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count timeseries root.**"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count timeseries root.**"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -494,7 +494,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Count nodes**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count nodes root.** level=2"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count nodes root.** level=2"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -515,7 +515,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show devices**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -542,7 +542,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Show devices with database**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices with database"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices with database"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -574,7 +574,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**List user**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"list user"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"list user"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -595,7 +595,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Aggregation**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -622,7 +622,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Group by level**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.** group by level = 1"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.** group by level = 1"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -647,7 +647,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Group by**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27 group by([1635232143960,1635232153960),1s)"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27 group by([1635232143960,1635232153960),1s)"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -701,7 +701,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Last**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select last s3 from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select last s3 from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -732,7 +732,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -
**Disable align**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select * from root.sg27 disable align"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select * from root.sg27 disable align"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -745,7 +745,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Align by device**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(s3) from root.sg27 align by device"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(s3) from root.sg27 align by device"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -758,7 +758,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
**Select into**
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4 into root.sg29.s1, root.sg29.s2 from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4 into root.sg29.s1, root.sg29.s2 from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
```json
@@ -774,7 +774,7 @@ Request method: `POST`
Request header: `application/json`
-Request path: http://ip:port/rest/v1/nonQuery
+Request path: http://ip:port/rest/v2/nonQuery
Parameter Description:
@@ -784,7 +784,7 @@ Parameter Description:
Example request:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"CREATE DATABASE root.ln"}' http://127.0.0.1:18080/rest/v1/nonQuery
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"CREATE DATABASE root.ln"}' http://127.0.0.1:18080/rest/v2/nonQuery
```
Response parameters:
@@ -810,7 +810,7 @@ Request method: `POST`
Request header: `application/json`
-Request path: http://ip:port/rest/v1/insertTablet
+Request path: http://ip:port/rest/v2/insertTablet
Parameter Description:
@@ -825,7 +825,7 @@ Parameter Description:
Example request:
```shell
-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
+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/v2/insertTablet
```
Sample response:
diff --git a/docs/UserGuide/Query-Data/Overview.md b/docs/UserGuide/Query-Data/Overview.md
index 3cb72cb0f6..f22f86f53a 100644
--- a/docs/UserGuide/Query-Data/Overview.md
+++ b/docs/UserGuide/Query-Data/Overview.md
@@ -286,7 +286,7 @@ Data query statements can be used in SQL command-line terminals, JDBC, JAVA / C+
SessionDataSet executeQueryStatement(String sql)
````
-- Used in RESTful API, see [HTTP API](../API/RestService.md) for details.
+- Used in RESTful API, see [HTTP API V1](../API/RestServiceV1.md) or [HTTP API V2](../API/RestServiceV2.md) for details.
### Efficient execution interfaces
diff --git a/docs/UserGuide/Write-Data/REST-API.md b/docs/UserGuide/Write-Data/REST-API.md
index 71927c3dc5..603621aa5e 100644
--- a/docs/UserGuide/Write-Data/REST-API.md
+++ b/docs/UserGuide/Write-Data/REST-API.md
@@ -21,7 +21,7 @@
# REST API Write
-Refer to [insertTablet](../API/RestService.md#inserttablet)
+Refer to [insertTablet (v1)](../API/RestServiceV1.md#inserttablet) or [insertTablet (v2)](../API/RestServiceV2.md#inserttablet)
Example:
diff --git a/docs/zh/UserGuide/API/RestService.md b/docs/zh/UserGuide/API/RestServiceV1.md
similarity index 94%
copy from docs/zh/UserGuide/API/RestService.md
copy to docs/zh/UserGuide/API/RestServiceV1.md
index 5c9fac9ed1..6b3715247c 100644
--- a/docs/zh/UserGuide/API/RestService.md
+++ b/docs/zh/UserGuide/API/RestServiceV1.md
@@ -134,14 +134,14 @@ query 接口可以用于处理数据查询和元数据查询。
| 参数名称 |参数类型 |是否必填|参数描述|
|-----------| ------------ | ------------ |------------ |
| sql | string | 是 | |
-| row_limit | integer | 否 | 一次查询能返回的结果集的最大行数。<br />如果不设置该参数,将使用配置文件的 `rest_query_default_row_size_limit` 作为默认值。<br />当返回结果集的行数超出限制时,将返回状态码 `411`。 |
+| rowLimit | integer | 否 | 一次查询能返回的结果集的最大行数。<br />如果不设置该参数,将使用配置文件的 `rest_query_default_row_size_limit` 作为默认值。<br />当返回结果集的行数超出限制时,将返回状态码 `411`。 |
响应参数:
| 参数名称 |参数类型 |参数描述|
|--------------| ------------ | ------------|
| expressions | array | 用于数据查询时结果集列名的数组,用于元数据查询时为`null`|
-| column_names | array | 用于元数据查询结果集列名数组,用于数据查询时为`null` |
+| columnNames | 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"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
1635232143960,
1635232153960
@@ -195,7 +195,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"child paths"
],
"timestamps": null,
@@ -218,7 +218,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"child nodes"
],
"timestamps": null,
@@ -241,7 +241,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"database",
"ttl"
],
@@ -269,7 +269,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"database",
"ttl"
],
@@ -295,7 +295,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"function name",
"function type",
"class name (UDF)"
@@ -334,7 +334,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"timeseries",
"alias",
"database",
@@ -408,7 +408,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"timeseries",
"alias",
"database",
@@ -482,7 +482,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"count"
],
"timestamps": null,
@@ -504,7 +504,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"count"
],
"timestamps": null,
@@ -526,7 +526,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"devices",
"isAligned"
],
@@ -554,7 +554,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"devices",
"database",
"isAligned"
@@ -587,7 +587,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"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)"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
0
],
@@ -637,7 +637,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"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)"
],
- "column_names": null,
+ "columnNames": null,
"timestamps": [
1635232143960,
1635232144960,
@@ -718,7 +718,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -
```json
{
"expressions": null,
- "column_names": [
+ "columnNames": [
"timeseries",
"value",
"dataType"
@@ -832,14 +832,14 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
|--------------| ------------ | ------------ |------------ |
| timestamps | array | 是 | 时间列 |
| measurements | array | 是 | 测点名称 |
-| data_types | array | 是 | 数据类型 |
+| dataTypes | array | 是 | 数据类型 |
| values | array | 是 | 值列,每一列中的值可以为 `null` |
-| is_aligned | boolean | 是 | 是否是对齐时间序列 |
-| device | string | 是 | 设备名称 |
+| isAligned | boolean | 是 | 是否是对齐时间序列 |
+| deviceId | string | 是 | 设备名称 |
请求示例:
```shell
-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
+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
```
响应参数:
diff --git a/docs/zh/UserGuide/API/RestService.md b/docs/zh/UserGuide/API/RestServiceV2.md
similarity index 94%
rename from docs/zh/UserGuide/API/RestService.md
rename to docs/zh/UserGuide/API/RestServiceV2.md
index 5c9fac9ed1..8986d629e9 100644
--- a/docs/zh/UserGuide/API/RestService.md
+++ b/docs/zh/UserGuide/API/RestServiceV2.md
@@ -127,7 +127,7 @@ query 接口可以用于处理数据查询和元数据查询。
请求头:`application/json`
-请求路径:http://ip:port/rest/v1/query
+请求路径:http://ip:port/rest/v2/query
参数说明:
@@ -151,7 +151,7 @@ query 接口可以用于处理数据查询和元数据查询。
请求示例 表达式查询:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4, s3 + 1 from root.sg27 limit 2"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4, s3 + 1 from root.sg27 limit 2"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -187,7 +187,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show child paths:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child paths root"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child paths root"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -210,7 +210,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show child nodes:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child nodes root"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show child nodes root"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -233,7 +233,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show all ttl:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show all ttl"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show all ttl"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -261,7 +261,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show ttl:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show ttl on root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show ttl on root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -287,7 +287,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show functions:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show functions"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show functions"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -326,7 +326,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show timeseries:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show timeseries"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show timeseries"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -400,7 +400,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show latest timeseries:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show latest timeseries"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show latest timeseries"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -474,7 +474,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 count timeseries:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count timeseries root.**"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count timeseries root.**"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -496,7 +496,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 count nodes:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count nodes root.** level=2"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"count nodes root.** level=2"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -518,7 +518,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show devices:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -546,7 +546,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 show devices with database:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices with database"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"show devices with database"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -579,7 +579,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 list user:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"list user"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"list user"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -601,7 +601,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 原始聚合查询:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -629,7 +629,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 group by level:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.** group by level = 1"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.** group by level = 1"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -655,7 +655,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 group by:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27 group by([1635232143960,1635232153960),1s)"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(*) from root.sg27 group by([1635232143960,1635232153960),1s)"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -710,7 +710,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 last:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select last s3 from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select last s3 from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -742,7 +742,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -
请求示例 disable align:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select * from root.sg27 disable align"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select * from root.sg27 disable align"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -756,7 +756,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 align by device:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(s3) from root.sg27 align by device"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select count(s3) from root.sg27 align by device"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -770,7 +770,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例 select into:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4 into root.sg29.s1, root.sg29.s2 from root.sg27"}' http://127.0.0.1:18080/rest/v1/query
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"select s3, s4 into root.sg29.s1, root.sg29.s2 from root.sg27"}' http://127.0.0.1:18080/rest/v2/query
```
响应示例:
@@ -788,7 +788,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求头:`application/json`
-请求路径:http://ip:port/rest/v1/nonQuery
+请求路径:http://ip:port/rest/v2/nonQuery
参数说明:
@@ -798,7 +798,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例:
```shell
-curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"CREATE DATABASE root.ln"}' http://127.0.0.1:18080/rest/v1/nonQuery
+curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X POST --data '{"sql":"CREATE DATABASE root.ln"}' http://127.0.0.1:18080/rest/v2/nonQuery
```
响应参数:
@@ -824,7 +824,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求头:`application/json`
-请求路径:http://ip:port/rest/v1/insertTablet
+请求路径:http://ip:port/rest/v2/insertTablet
参数说明:
@@ -839,7 +839,7 @@ curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpyb290" -X
请求示例:
```shell
-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
+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/v2/insertTablet
```
响应参数:
diff --git a/docs/zh/UserGuide/Query-Data/Overview.md b/docs/zh/UserGuide/Query-Data/Overview.md
index a4cdcfd690..8b45276b60 100644
--- a/docs/zh/UserGuide/Query-Data/Overview.md
+++ b/docs/zh/UserGuide/Query-Data/Overview.md
@@ -294,7 +294,7 @@ It costs 0.016s
SessionDataSet executeQueryStatement(String sql);
```
-- 在 RESTful API 中使用,详见 [HTTP API](../API/RestService.md) 。
+- 在 RESTful API 中使用,详见 [HTTP API V1](../API/RestServiceV1.md) 或者 [HTTP API V2](../API/RestServiceV2.md)。
#### 常用查询的高效执行接口
diff --git a/docs/zh/UserGuide/Write-Data/REST-API.md b/docs/zh/UserGuide/Write-Data/REST-API.md
index 4d69fea047..936a268fd9 100644
--- a/docs/zh/UserGuide/Write-Data/REST-API.md
+++ b/docs/zh/UserGuide/Write-Data/REST-API.md
@@ -21,7 +21,7 @@
## REST API写入
-参考 [insertTablet](../API/RestService.md#inserttablet)
+参考 [insertTablet (v1)](../API/RestServiceV1.md#inserttablet) or [insertTablet (v2)](../API/RestServiceV2.md#inserttablet)
示例如下:
```JSON
diff --git a/grafana-plugin/pkg/plugin/plugin.go b/grafana-plugin/pkg/plugin/plugin.go
index 514bc08fc6..89334a9dd3 100644
--- a/grafana-plugin/pkg/plugin/plugin.go
+++ b/grafana-plugin/pkg/plugin/plugin.go
@@ -138,9 +138,9 @@ type queryParam struct {
type QueryDataReq struct {
Expression []string `json:"expression"`
- PrefixPath []string `json:"prefix_path"`
- StartTime int64 `json:"start_time"`
- EndTime int64 `json:"end_time"`
+ PrefixPath []string `json:"prefixPath"`
+ StartTime int64 `json:"startTime"`
+ EndTime int64 `json:"endTime"`
Condition string `json:"condition"`
Control string `json:"control"`
}
@@ -149,7 +149,7 @@ type QueryDataResponse struct {
Expressions []string `json:"expressions"`
Timestamps []int64 `json:"timestamps"`
Values [][]interface{} `json:"values"`
- ColumnNames interface{} `json:"column_names"`
+ ColumnNames interface{} `json:"columnNames"`
Code int32 `json:"code"`
Message string `json:"message"`
}
diff --git a/openapi/pom.xml b/openapi/pom.xml
index 9f54c8619c..bcc19aca2f 100644
--- a/openapi/pom.xml
+++ b/openapi/pom.xml
@@ -90,12 +90,12 @@
<version>${openapi.generator.version}</version>
<executions>
<execution>
- <id>generate-java-rest-codes</id>
+ <id>generate-java-rest-codes-common</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
- <inputSpec>${project.basedir}/src/main/openapi3/iotdb-rest.yaml</inputSpec>
+ <inputSpec>${project.basedir}/src/main/openapi3/iotdb_rest_common.yaml</inputSpec>
<output>${project.build.directory}/generated-sources/java</output>
<apiPackage>org.apache.iotdb.db.protocol.rest</apiPackage>
<modelPackage>org.apache.iotdb.db.protocol.rest.model</modelPackage>
@@ -115,6 +115,58 @@
</configOptions>
</configuration>
</execution>
+ <execution>
+ <id>generate-java-rest-codes-v1</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>${project.basedir}/src/main/openapi3/iotdb_rest_v1.yaml</inputSpec>
+ <output>${project.build.directory}/generated-sources/java</output>
+ <apiPackage>org.apache.iotdb.db.protocol.rest.v1</apiPackage>
+ <modelPackage>org.apache.iotdb.db.protocol.rest.v1.model</modelPackage>
+ <invokerPackage>org.apache.iotdb.db.protocol.rest.v1.invoker</invokerPackage>
+ <generatorName>jaxrs-jersey</generatorName>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>iotdb-rest-service</artifactId>
+ <artifactVersion>${project.version}</artifactVersion>
+ <addCompileSourceRoot>true</addCompileSourceRoot>
+ <configOptions>
+ <licenseName>Apache License 2.0</licenseName>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>iotdb-rest-service</artifactId>
+ <artifactVersion>${project.version}</artifactVersion>
+ <dateLibrary>java8</dateLibrary>
+ <useGzipFeature>true</useGzipFeature>
+ </configOptions>
+ </configuration>
+ </execution>
+ <execution>
+ <id>generate-java-rest-codes-v2</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>${project.basedir}/src/main/openapi3/iotdb_rest_v2.yaml</inputSpec>
+ <output>${project.build.directory}/generated-sources/java</output>
+ <apiPackage>org.apache.iotdb.db.protocol.rest.v2</apiPackage>
+ <modelPackage>org.apache.iotdb.db.protocol.rest.v2.model</modelPackage>
+ <invokerPackage>org.apache.iotdb.db.protocol.rest.v2.invoker</invokerPackage>
+ <generatorName>jaxrs-jersey</generatorName>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>iotdb-rest-service</artifactId>
+ <artifactVersion>${project.version}</artifactVersion>
+ <addCompileSourceRoot>true</addCompileSourceRoot>
+ <configOptions>
+ <licenseName>Apache License 2.0</licenseName>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>iotdb-rest-service</artifactId>
+ <artifactVersion>${project.version}</artifactVersion>
+ <dateLibrary>java8</dateLibrary>
+ <useGzipFeature>true</useGzipFeature>
+ </configOptions>
+ </configuration>
+ </execution>
</executions>
</plugin>
</plugins>
diff --git a/openapi/src/main/openapi3/iotdb_rest_common.yaml b/openapi/src/main/openapi3/iotdb_rest_common.yaml
new file mode 100644
index 0000000000..c868139408
--- /dev/null
+++ b/openapi/src/main/openapi3/iotdb_rest_common.yaml
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+openapi: 3.0.0
+info:
+ title: iotdb_rest_common
+ 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/
+ description: api
+security:
+- basic: []
+paths:
+ /ping:
+ get:
+ responses:
+ "200":
+ description: ExecutionStatus
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ExecutionStatus'
+ operationId: tryPing
+
+components:
+ schemas:
+ ExecutionStatus:
+ type: object
+ properties:
+ code:
+ type: integer
+ format: int32
+ message:
+ type: string
+
+ securitySchemes:
+ basic:
+ type: http
+ scheme: basic
+ APIKey:
+ type: apiKey
+ name: API Key
+ in: header
diff --git a/openapi/src/main/openapi3/iotdb-rest.yaml b/openapi/src/main/openapi3/iotdb_rest_v1.yaml
similarity index 92%
copy from openapi/src/main/openapi3/iotdb-rest.yaml
copy to openapi/src/main/openapi3/iotdb_rest_v1.yaml
index b9cd29ff2c..18080c693a 100644
--- a/openapi/src/main/openapi3/iotdb-rest.yaml
+++ b/openapi/src/main/openapi3/iotdb_rest_v1.yaml
@@ -26,22 +26,11 @@ info:
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
servers:
-- url: http://127.0.0.1:18080/
- description: api
+ - url: http://127.0.0.1:18080/
+ description: api
security:
-- basic: []
+ - basic: []
paths:
- /ping:
- get:
- responses:
- "200":
- description: ExecutionStatus
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ExecutionStatus'
- operationId: tryPing
-
/rest/v1/insertTablet:
post:
summary: insertTablet
@@ -174,7 +163,7 @@ components:
properties:
sql:
type: string
- row_limit:
+ rowLimit:
type: integer
format: int32
@@ -191,7 +180,7 @@ components:
type: array
items:
type: string
- data_types:
+ dataTypes:
type: array
items:
type: string
@@ -201,9 +190,9 @@ components:
type: array
items:
type: object
- is_aligned:
+ isAligned:
type: boolean
- device:
+ deviceId:
type: string
ExecutionStatus:
@@ -222,7 +211,7 @@ components:
type: array
items:
type: string
- column_names:
+ columnNames:
type: array
items:
type: string
@@ -245,17 +234,17 @@ components:
type: array
items:
type: string
- prefix_path:
+ prefixPath:
type: array
items:
type: string
condition:
type: string
control:
- type: string
- start_time:
+ type: string
+ startTime:
type: number
- end_time:
+ endTime:
type: number
VariablesResult:
diff --git a/openapi/src/main/openapi3/iotdb-rest.yaml b/openapi/src/main/openapi3/iotdb_rest_v2.yaml
similarity index 92%
rename from openapi/src/main/openapi3/iotdb-rest.yaml
rename to openapi/src/main/openapi3/iotdb_rest_v2.yaml
index b9cd29ff2c..4dfdb14cb9 100644
--- a/openapi/src/main/openapi3/iotdb-rest.yaml
+++ b/openapi/src/main/openapi3/iotdb_rest_v2.yaml
@@ -19,30 +19,19 @@
openapi: 3.0.0
info:
- title: iotdb-rest
+ title: iotdb_rest_v2
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/
- description: api
+ - url: http://127.0.0.1:18080/
+ description: api
security:
-- basic: []
+ - basic: []
paths:
- /ping:
- get:
- responses:
- "200":
- description: ExecutionStatus
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ExecutionStatus'
- operationId: tryPing
-
- /rest/v1/insertTablet:
+ /rest/v2/insertTablet:
post:
summary: insertTablet
description: insertTablet
@@ -60,7 +49,7 @@ paths:
schema:
$ref: '#/components/schemas/ExecutionStatus'
- /rest/v1/nonQuery:
+ /rest/v2/nonQuery:
post:
summary: executeNonQueryStatement
description: executeNonQueryStatement
@@ -78,7 +67,7 @@ paths:
schema:
$ref: '#/components/schemas/ExecutionStatus'
- /rest/v1/query:
+ /rest/v2/query:
post:
summary: executeQueryStatement
description: executeQueryStatement
@@ -96,7 +85,7 @@ paths:
schema:
$ref: '#/components/schemas/QueryDataSet'
- /grafana/v1/login:
+ /grafana/v2/login:
get:
responses:
"200":
@@ -107,7 +96,7 @@ paths:
$ref: '#/components/schemas/ExecutionStatus'
operationId: login
- /grafana/v1/query/expression:
+ /grafana/v2/query/expression:
post:
summary: expression
description: expression
@@ -125,7 +114,7 @@ paths:
schema:
$ref: '#/components/schemas/QueryDataSet'
- /grafana/v1/variable:
+ /grafana/v2/variable:
post:
summary: variables
description: variables
@@ -143,7 +132,7 @@ paths:
schema:
$ref: '#/components/schemas/VariablesResult'
- /grafana/v1/node:
+ /grafana/v2/node:
post:
summary: node
description: node
@@ -252,7 +241,7 @@ components:
condition:
type: string
control:
- type: string
+ type: string
start_time:
type: number
end_time:
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/AuthorizationHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/AuthorizationHandler.java
index 289b9fc523..8f6f441b5c 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/AuthorizationHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/AuthorizationHandler.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.SecurityContext;
public class AuthorizationHandler {
@@ -40,7 +41,12 @@ public class AuthorizationHandler {
.build();
}
} catch (AuthException e) {
- return Response.ok().entity(ExceptionHandler.tryCatchException(e)).build();
+ return Response.ok()
+ .entity(
+ new ExecutionStatus()
+ .message(e.getMessage())
+ .code(Status.BAD_REQUEST.getStatusCode()))
+ .build();
}
return null;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExceptionHandler.java
similarity index 92%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExceptionHandler.java
index 5cc980fcc5..862f799961 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExceptionHandler.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v1.handler;
import org.apache.iotdb.commons.auth.AuthException;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.exception.IoTDBException;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
+import org.apache.iotdb.db.exception.metadata.DatabaseNotSetException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.exception.sql.SemanticException;
import org.apache.iotdb.db.exception.sql.StatementAnalyzeException;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
import org.antlr.v4.runtime.misc.ParseCancellationException;
@@ -47,9 +47,9 @@ public class ExceptionHandler {
if (e instanceof QueryProcessException) {
responseResult.setMessage(e.getMessage());
responseResult.setCode(((QueryProcessException) e).getErrorCode());
- } else if (e instanceof StorageGroupNotSetException) {
+ } else if (e instanceof DatabaseNotSetException) {
responseResult.setMessage(e.getMessage());
- responseResult.setCode(((StorageGroupNotSetException) e).getErrorCode());
+ responseResult.setCode(((DatabaseNotSetException) e).getErrorCode());
} else if (e instanceof StorageEngineException) {
responseResult.setMessage(e.getMessage());
responseResult.setCode(((StorageEngineException) e).getErrorCode());
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExecuteStatementHandler.java
similarity index 97%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExecuteStatementHandler.java
index d7f7841167..e72c255631 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/ExecuteStatementHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v1.handler;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.StatementType;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/QueryDataSetHandler.java
similarity index 92%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/QueryDataSetHandler.java
index 14f54c7a37..e61075ea11 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/QueryDataSetHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v1.handler;
import org.apache.iotdb.commons.exception.IoTDBException;
import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
@@ -25,7 +25,7 @@ import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildPathsStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.AuthorStatement;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExecutionStatus;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.Path;
@@ -72,8 +72,8 @@ public class QueryDataSetHandler {
public static Response fillDataSetWithTimestamps(
IQueryExecution queryExecution, final int actualRowSizeLimit, final long timePrecision)
throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet();
return fillQueryDataSetWithTimestamps(
queryExecution, actualRowSizeLimit, targetDataSet, timePrecision);
@@ -82,8 +82,8 @@ public class QueryDataSetHandler {
public static Response fillAggregationPlanDataSet(
IQueryExecution queryExecution, final int actualRowSizeLimit) throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet();
DatasetHeader datasetHeader = queryExecution.getDatasetHeader();
@@ -97,8 +97,8 @@ public class QueryDataSetHandler {
private static Response fillShowPlanDataSet(
IQueryExecution queryExecution, final int actualRowSizeLimit) throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet();
initTargetDatasetOrderByOrderWithSourceDataSet(
queryExecution.getDatasetHeader(), targetDataSet);
@@ -107,7 +107,7 @@ public class QueryDataSetHandler {
private static void initTargetDatasetOrderByOrderWithSourceDataSet(
DatasetHeader datasetHeader,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet) {
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet) {
if (datasetHeader.getRespColumns() != null) {
for (int i = 0; i < datasetHeader.getRespColumns().size(); i++) {
targetDataSet.addColumnNamesItem(datasetHeader.getRespColumns().get(i));
@@ -119,7 +119,7 @@ public class QueryDataSetHandler {
private static void initTargetDatasetExpByOrderWithSourceDataSet(
QueryDataSet sourceDataSet,
int[] targetDataSetIndexToSourceDataSetIndex,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet) {
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet) {
if (sourceDataSet.getPaths() != null) {
for (int i = 0; i < sourceDataSet.getPaths().size(); i++) {
Path path = sourceDataSet.getPaths().get(i);
@@ -133,7 +133,7 @@ public class QueryDataSetHandler {
private static Response fillQueryDataSetWithTimestamps(
IQueryExecution queryExecution,
int actualRowSizeLimit,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet,
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet,
final long timePrecision)
throws IoTDBException {
int fetched = 0;
@@ -202,7 +202,7 @@ public class QueryDataSetHandler {
private static Response fillQueryDataSetWithoutTimestamps(
IQueryExecution queryExecution,
int actualRowSizeLimit,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet)
+ org.apache.iotdb.db.protocol.rest.v1.model.QueryDataSet targetDataSet)
throws IoTDBException {
int fetched = 0;
int columnNum = queryExecution.getOutputValueColumnCount();
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/v1/handler/RequestValidationHandler.java
similarity index 74%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/RequestValidationHandler.java
index 27b77596a5..32e97d36fe 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/v1/handler/RequestValidationHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v1.handler;
-import org.apache.iotdb.db.protocol.rest.model.ExpressionRequest;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExpressionRequest;
+import org.apache.iotdb.db.protocol.rest.v1.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v1.model.SQL;
import org.apache.commons.lang3.Validate;
@@ -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, "row_limit should be positive");
+ Validate.isTrue(sql.getRowLimit() > 0, "rowLimit should be positive");
}
}
public static void validateInsertTabletRequest(InsertTabletRequest insertTabletRequest) {
Objects.requireNonNull(insertTabletRequest.getTimestamps(), "timestamps 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.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.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(), "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");
+ 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");
}
}
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/v1/handler/StatementConstructionHandler.java
similarity index 97%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/handler/StatementConstructionHandler.java
index 29bd53e9a1..c0d422601d 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/v1/handler/StatementConstructionHandler.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v1.handler;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.exception.WriteProcessRejectException;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v1.model.InsertTabletRequest;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.BitMap;
@@ -38,7 +38,7 @@ public class StatementConstructionHandler {
throws IllegalPathException, WriteProcessRejectException {
// construct insert statement
InsertTabletStatement insertStatement = new InsertTabletStatement();
- insertStatement.setDevicePath(new PartialPath(insertTabletRequest.getDevice()));
+ insertStatement.setDevicePath(new PartialPath(insertTabletRequest.getDeviceId()));
insertStatement.setMeasurements(insertTabletRequest.getMeasurements().toArray(new String[0]));
List<List<Object>> rawData = insertTabletRequest.getValues();
List<String> rawDataType = insertTabletRequest.getDataTypes();
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/GrafanaApiServiceImpl.java
similarity index 92%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/GrafanaApiServiceImpl.java
index 96a85f9741..4301457b28 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/GrafanaApiServiceImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.impl;
+package org.apache.iotdb.db.protocol.rest.v1.impl;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBConfig;
@@ -31,15 +31,14 @@ import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowStatement;
-import org.apache.iotdb.db.protocol.rest.GrafanaApiService;
-import org.apache.iotdb.db.protocol.rest.NotFoundException;
import org.apache.iotdb.db.protocol.rest.handler.AuthorizationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExceptionHandler;
-import org.apache.iotdb.db.protocol.rest.handler.QueryDataSetHandler;
-import org.apache.iotdb.db.protocol.rest.handler.RequestValidationHandler;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
-import org.apache.iotdb.db.protocol.rest.model.ExpressionRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v1.GrafanaApiService;
+import org.apache.iotdb.db.protocol.rest.v1.handler.ExceptionHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.QueryDataSetHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.RequestValidationHandler;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExpressionRequest;
+import org.apache.iotdb.db.protocol.rest.v1.model.SQL;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -136,8 +135,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response expression(ExpressionRequest expressionRequest, SecurityContext securityContext)
- throws NotFoundException {
+ public Response expression(ExpressionRequest expressionRequest, SecurityContext securityContext) {
try {
RequestValidationHandler.validateExpressionRequest(expressionRequest);
@@ -203,7 +201,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response login(SecurityContext securityContext) throws NotFoundException {
+ public Response login(SecurityContext securityContext) {
return Response.ok()
.entity(
new ExecutionStatus()
@@ -213,8 +211,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response node(List<String> requestBody, SecurityContext securityContext)
- throws NotFoundException {
+ public Response node(List<String> requestBody, SecurityContext securityContext) {
try {
if (requestBody != null && !requestBody.isEmpty()) {
PartialPath path = new PartialPath(Joiner.on(".").join(requestBody));
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/RestApiServiceImpl.java
similarity index 92%
copy from server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
copy to server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/RestApiServiceImpl.java
index 2f00f2e5dd..e5ec2a298b 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v1/impl/RestApiServiceImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.impl;
+package org.apache.iotdb.db.protocol.rest.v1.impl;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -30,16 +30,16 @@ import org.apache.iotdb.db.mpp.plan.execution.IQueryExecution;
import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement;
-import org.apache.iotdb.db.protocol.rest.RestApiService;
import org.apache.iotdb.db.protocol.rest.handler.AuthorizationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExceptionHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExecuteStatementHandler;
-import org.apache.iotdb.db.protocol.rest.handler.QueryDataSetHandler;
-import org.apache.iotdb.db.protocol.rest.handler.RequestValidationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.StatementConstructionHandler;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v1.RestApiService;
+import org.apache.iotdb.db.protocol.rest.v1.handler.ExceptionHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.ExecuteStatementHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.QueryDataSetHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.RequestValidationHandler;
+import org.apache.iotdb.db.protocol.rest.v1.handler.StatementConstructionHandler;
+import org.apache.iotdb.db.protocol.rest.v1.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v1.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v1.model.SQL;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.rpc.TSStatusCode;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExceptionHandler.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExceptionHandler.java
index 5cc980fcc5..5db00b9c49 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExceptionHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v2.handler;
import org.apache.iotdb.commons.auth.AuthException;
import org.apache.iotdb.commons.exception.IllegalPathException;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExecuteStatementHandler.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExecuteStatementHandler.java
index d7f7841167..630d8999b8 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExecuteStatementHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/ExecuteStatementHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v2.handler;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.StatementType;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/QueryDataSetHandler.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/QueryDataSetHandler.java
index 14f54c7a37..9fd780259e 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/QueryDataSetHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v2.handler;
import org.apache.iotdb.commons.exception.IoTDBException;
import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
@@ -72,8 +72,8 @@ public class QueryDataSetHandler {
public static Response fillDataSetWithTimestamps(
IQueryExecution queryExecution, final int actualRowSizeLimit, final long timePrecision)
throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet();
return fillQueryDataSetWithTimestamps(
queryExecution, actualRowSizeLimit, targetDataSet, timePrecision);
@@ -82,8 +82,8 @@ public class QueryDataSetHandler {
public static Response fillAggregationPlanDataSet(
IQueryExecution queryExecution, final int actualRowSizeLimit) throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet();
DatasetHeader datasetHeader = queryExecution.getDatasetHeader();
@@ -97,8 +97,8 @@ public class QueryDataSetHandler {
private static Response fillShowPlanDataSet(
IQueryExecution queryExecution, final int actualRowSizeLimit) throws IoTDBException {
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet =
- new org.apache.iotdb.db.protocol.rest.model.QueryDataSet();
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet =
+ new org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet();
initTargetDatasetOrderByOrderWithSourceDataSet(
queryExecution.getDatasetHeader(), targetDataSet);
@@ -107,7 +107,7 @@ public class QueryDataSetHandler {
private static void initTargetDatasetOrderByOrderWithSourceDataSet(
DatasetHeader datasetHeader,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet) {
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet) {
if (datasetHeader.getRespColumns() != null) {
for (int i = 0; i < datasetHeader.getRespColumns().size(); i++) {
targetDataSet.addColumnNamesItem(datasetHeader.getRespColumns().get(i));
@@ -119,7 +119,7 @@ public class QueryDataSetHandler {
private static void initTargetDatasetExpByOrderWithSourceDataSet(
QueryDataSet sourceDataSet,
int[] targetDataSetIndexToSourceDataSetIndex,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet) {
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet) {
if (sourceDataSet.getPaths() != null) {
for (int i = 0; i < sourceDataSet.getPaths().size(); i++) {
Path path = sourceDataSet.getPaths().get(i);
@@ -133,7 +133,7 @@ public class QueryDataSetHandler {
private static Response fillQueryDataSetWithTimestamps(
IQueryExecution queryExecution,
int actualRowSizeLimit,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet,
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet,
final long timePrecision)
throws IoTDBException {
int fetched = 0;
@@ -151,7 +151,7 @@ public class QueryDataSetHandler {
if (0 < actualRowSizeLimit && actualRowSizeLimit <= fetched) {
return Response.ok()
.entity(
- new org.apache.iotdb.db.protocol.rest.model.ExecutionStatus()
+ new ExecutionStatus()
.code(TSStatusCode.QUERY_PROCESS_ERROR.getStatusCode())
.message(
String.format(
@@ -202,7 +202,7 @@ public class QueryDataSetHandler {
private static Response fillQueryDataSetWithoutTimestamps(
IQueryExecution queryExecution,
int actualRowSizeLimit,
- org.apache.iotdb.db.protocol.rest.model.QueryDataSet targetDataSet)
+ org.apache.iotdb.db.protocol.rest.v2.model.QueryDataSet targetDataSet)
throws IoTDBException {
int fetched = 0;
int columnNum = queryExecution.getOutputValueColumnCount();
@@ -210,7 +210,7 @@ public class QueryDataSetHandler {
if (0 < actualRowSizeLimit && actualRowSizeLimit <= fetched) {
return Response.ok()
.entity(
- new org.apache.iotdb.db.protocol.rest.model.ExecutionStatus()
+ new ExecutionStatus()
.code(TSStatusCode.QUERY_PROCESS_ERROR.getStatusCode())
.message(
String.format(
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/v2/handler/RequestValidationHandler.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/RequestValidationHandler.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/RequestValidationHandler.java
index 27b77596a5..2b7f568ede 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/v2/handler/RequestValidationHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v2.handler;
-import org.apache.iotdb.db.protocol.rest.model.ExpressionRequest;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v2.model.ExpressionRequest;
+import org.apache.iotdb.db.protocol.rest.v2.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v2.model.SQL;
import org.apache.commons.lang3.Validate;
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/v2/handler/StatementConstructionHandler.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/StatementConstructionHandler.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/handler/StatementConstructionHandler.java
index 29bd53e9a1..4d643862d9 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/v2/handler/StatementConstructionHandler.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.handler;
+package org.apache.iotdb.db.protocol.rest.v2.handler;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.exception.WriteProcessRejectException;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v2.model.InsertTabletRequest;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.BitMap;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/GrafanaApiServiceImpl.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/GrafanaApiServiceImpl.java
index 96a85f9741..1512b56a6f 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/GrafanaApiServiceImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.impl;
+package org.apache.iotdb.db.protocol.rest.v2.impl;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.conf.IoTDBConfig;
@@ -31,15 +31,14 @@ import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowStatement;
-import org.apache.iotdb.db.protocol.rest.GrafanaApiService;
-import org.apache.iotdb.db.protocol.rest.NotFoundException;
import org.apache.iotdb.db.protocol.rest.handler.AuthorizationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExceptionHandler;
-import org.apache.iotdb.db.protocol.rest.handler.QueryDataSetHandler;
-import org.apache.iotdb.db.protocol.rest.handler.RequestValidationHandler;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
-import org.apache.iotdb.db.protocol.rest.model.ExpressionRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v2.GrafanaApiService;
+import org.apache.iotdb.db.protocol.rest.v2.handler.ExceptionHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.QueryDataSetHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.RequestValidationHandler;
+import org.apache.iotdb.db.protocol.rest.v2.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v2.model.ExpressionRequest;
+import org.apache.iotdb.db.protocol.rest.v2.model.SQL;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -136,8 +135,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response expression(ExpressionRequest expressionRequest, SecurityContext securityContext)
- throws NotFoundException {
+ public Response expression(ExpressionRequest expressionRequest, SecurityContext securityContext) {
try {
RequestValidationHandler.validateExpressionRequest(expressionRequest);
@@ -203,7 +201,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response login(SecurityContext securityContext) throws NotFoundException {
+ public Response login(SecurityContext securityContext) {
return Response.ok()
.entity(
new ExecutionStatus()
@@ -213,8 +211,7 @@ public class GrafanaApiServiceImpl extends GrafanaApiService {
}
@Override
- public Response node(List<String> requestBody, SecurityContext securityContext)
- throws NotFoundException {
+ public Response node(List<String> requestBody, SecurityContext securityContext) {
try {
if (requestBody != null && !requestBody.isEmpty()) {
PartialPath path = new PartialPath(Joiner.on(".").join(requestBody));
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/RestApiServiceImpl.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
rename to server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/RestApiServiceImpl.java
index 2f00f2e5dd..d481090c87 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/v2/impl/RestApiServiceImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.iotdb.db.protocol.rest.impl;
+package org.apache.iotdb.db.protocol.rest.v2.impl;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -30,16 +30,16 @@ import org.apache.iotdb.db.mpp.plan.execution.IQueryExecution;
import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.crud.InsertTabletStatement;
-import org.apache.iotdb.db.protocol.rest.RestApiService;
import org.apache.iotdb.db.protocol.rest.handler.AuthorizationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExceptionHandler;
-import org.apache.iotdb.db.protocol.rest.handler.ExecuteStatementHandler;
-import org.apache.iotdb.db.protocol.rest.handler.QueryDataSetHandler;
-import org.apache.iotdb.db.protocol.rest.handler.RequestValidationHandler;
-import org.apache.iotdb.db.protocol.rest.handler.StatementConstructionHandler;
-import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
-import org.apache.iotdb.db.protocol.rest.model.InsertTabletRequest;
-import org.apache.iotdb.db.protocol.rest.model.SQL;
+import org.apache.iotdb.db.protocol.rest.v2.RestApiService;
+import org.apache.iotdb.db.protocol.rest.v2.handler.ExceptionHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.ExecuteStatementHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.QueryDataSetHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.RequestValidationHandler;
+import org.apache.iotdb.db.protocol.rest.v2.handler.StatementConstructionHandler;
+import org.apache.iotdb.db.protocol.rest.v2.model.ExecutionStatus;
+import org.apache.iotdb.db.protocol.rest.v2.model.InsertTabletRequest;
+import org.apache.iotdb.db.protocol.rest.v2.model.SQL;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.rpc.TSStatusCode;
diff --git a/site/src/main/.vuepress/config.js b/site/src/main/.vuepress/config.js
index 4698c42a14..ec2fdeaa65 100644
--- a/site/src/main/.vuepress/config.js
+++ b/site/src/main/.vuepress/config.js
@@ -627,7 +627,8 @@ const config = {
['API/Programming-Go-Native-API', 'Go Native API'],
['API/Programming-JDBC', 'JDBC (Not Recommend)'],
['API/Programming-MQTT', 'MQTT'],
- ['API/RestService', 'REST API'],
+ ['API/RestServiceV1', 'REST API V1 (Not Recommend)'],
+ ['API/RestServiceV2', 'REST API V2'],
['API/Programming-TsFile-API', 'TsFile API'],
['API/InfluxDB-Protocol', 'InfluxDB Protocol'],
['API/Interface-Comparison', 'Interface Comparison'],
@@ -927,7 +928,8 @@ const config = {
['API/Programming-Go-Native-API', 'Go 原生接口'],
['API/Programming-JDBC', 'JDBC (不推荐)'],
['API/Programming-MQTT', 'MQTT'],
- ['API/RestService', 'REST API'],
+ ['API/RestServiceV1', 'REST API V1 (不推荐)'],
+ ['API/RestServiceV2', 'REST API V2'],
['API/Programming-TsFile-API', 'TsFile API'],
['API/Status-Codes', '状态码'],
],