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 <[email protected]> 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', '状态码'], ],
