| <!-- |
| |
| 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. |
| |
| --> |
| |
| # REST API V2 |
| IoTDB's RESTful services can be used for query, write, and management operations, using the OpenAPI standard to define interfaces and generate frameworks. |
| |
| Note: As of version V2.0.8.2, the TimechoDB installation package does not include the REST service JAR file by default. Please contact the Timecho team to obtain the corresponding JAR file before using this service, and place it in the `timechodb_home/lib` or `timechodb_home/ext/external_service` directory. |
| |
| ## 1. Enable RESTful Services |
| |
| RESTful services are disabled by default. |
| |
| Find the `conf/iotdb-system.properties` file under the IoTDB installation directory and set `enable_rest_service` to `true` to enable the module. |
| |
| ```properties |
| enable_rest_service=true |
| ``` |
| |
| ## 2. Authentication |
| Except the liveness probe API `/ping`, RESTful services use the basic authentication. Each URL request needs to carry `'Authorization': 'Basic ' + base64.encode(username + ':' + password)`. |
| |
| The username used in the following examples is: `root`, and password is: `TimechoDB@2021` //Before V2.0.6.x the default password is root. |
| |
| And the authorization header is |
| |
| ``` |
| Authorization: Basic cm9vdDpUaW1lY2hvREJAMjAyMQ== |
| ``` |
| |
| - If a user authorized with incorrect username or password, the following error is returned: |
| |
| HTTP Status Code:`401` |
| |
| HTTP response body: |
| ```json |
| { |
| "code": 600, |
| "message": "WRONG_LOGIN_PASSWORD_ERROR" |
| } |
| ``` |
| |
| - If the `Authorization` header is missing,the following error is returned: |
| |
| HTTP Status Code:`401` |
| |
| HTTP response body: |
| ```json |
| { |
| "code": 603, |
| "message": "UNINITIALIZED_AUTH_ERROR" |
| } |
| ``` |
| |
| ## 3. Interface |
| |
| ### 3.1 ping |
| |
| The `/ping` API can be used for service liveness probing. |
| |
| Request method: `GET` |
| |
| Request path: `http://ip:port/ping` |
| |
| The user name used in the example is: root, password: root |
| |
| Example request: |
| |
| ```shell |
| $ curl http://127.0.0.1:18080/ping |
| ``` |
| |
| Response status codes: |
| |
| - `200`: The service is alive. |
| - `503`: The service cannot accept any requests now. |
| |
| Response parameters: |
| |
| |parameter name |parameter type |parameter describe| |
| |:--- | :--- | :---| |
| |code | integer | status code | |
| | message | string | message | |
| |
| Sample response: |
| |
| - With HTTP status code `200`: |
| |
| ```json |
| { |
| "code": 200, |
| "message": "SUCCESS_STATUS" |
| } |
| ``` |
| |
| - With HTTP status code `503`: |
| |
| ```json |
| { |
| "code": 500, |
| "message": "thrift service is unavailable" |
| } |
| ``` |
| |
| > `/ping` can be accessed without authorization. |
| |
| ### 3.2 query |
| |
| The query interface can be used to handle data queries and metadata queries. |
| |
| Request method: `POST` |
| |
| Request header: `application/json` |
| |
| Request path: `http://ip:port/rest/v2/query` |
| |
| 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. | |
| |
| 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 | |
| | 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 | |
| |
| **Examples:** |
| |
| Tip: Statements like `select * from root.xx.**` are not recommended because those statements may cause OOM. |
| |
| **Expression query** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select s3, s4, s3 + 1 from root.sg27 limit 2"}' http://127.0.0.1:18080/rest/v2/query |
| ```` |
| |
| ```json |
| { |
| "expressions": [ |
| "root.sg27.s3", |
| "root.sg27.s4", |
| "root.sg27.s3 + 1" |
| ], |
| "column_names": null, |
| "timestamps": [ |
| 1635232143960, |
| 1635232153960 |
| ], |
| "values": [ |
| [ |
| 11, |
| null |
| ], |
| [ |
| false, |
| true |
| ], |
| [ |
| 12.0, |
| null |
| ] |
| ] |
| } |
| ``` |
| |
| **Show child paths** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show child paths root"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "child paths" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27", |
| "root.sg28" |
| ] |
| ] |
| } |
| ``` |
| |
| **Show child nodes** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show child nodes root"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "child nodes" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "sg27", |
| "sg28" |
| ] |
| ] |
| } |
| ``` |
| |
| **Show all ttl** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show all ttl"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "database", |
| "ttl" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27", |
| "root.sg28" |
| ], |
| [ |
| null, |
| null |
| ] |
| ] |
| } |
| ``` |
| |
| **Show ttl** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show ttl on root.sg27"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "database", |
| "ttl" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27" |
| ], |
| [ |
| null |
| ] |
| ] |
| } |
| ``` |
| |
| **Show functions** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show functions"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "function name", |
| "function type", |
| "class name (UDF)" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "ABS", |
| "ACOS", |
| "ASIN", |
| ... |
| ], |
| [ |
| "built-in UDTF", |
| "built-in UDTF", |
| "built-in UDTF", |
| ... |
| ], |
| [ |
| "org.apache.iotdb.db.query.udf.builtin.UDTFAbs", |
| "org.apache.iotdb.db.query.udf.builtin.UDTFAcos", |
| "org.apache.iotdb.db.query.udf.builtin.UDTFAsin", |
| ... |
| ] |
| ] |
| } |
| ``` |
| |
| **Show timeseries** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show timeseries"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "timeseries", |
| "alias", |
| "database", |
| "dataType", |
| "encoding", |
| "compression", |
| "tags", |
| "attributes" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27.s3", |
| "root.sg27.s4", |
| "root.sg28.s3", |
| "root.sg28.s4" |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ], |
| [ |
| "root.sg27", |
| "root.sg27", |
| "root.sg28", |
| "root.sg28" |
| ], |
| [ |
| "INT32", |
| "BOOLEAN", |
| "INT32", |
| "BOOLEAN" |
| ], |
| [ |
| "RLE", |
| "RLE", |
| "RLE", |
| "RLE" |
| ], |
| [ |
| "SNAPPY", |
| "SNAPPY", |
| "SNAPPY", |
| "SNAPPY" |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ] |
| ] |
| } |
| ``` |
| |
| **Show latest timeseries** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show latest timeseries"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "timeseries", |
| "alias", |
| "database", |
| "dataType", |
| "encoding", |
| "compression", |
| "tags", |
| "attributes" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg28.s4", |
| "root.sg27.s4", |
| "root.sg28.s3", |
| "root.sg27.s3" |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ], |
| [ |
| "root.sg28", |
| "root.sg27", |
| "root.sg28", |
| "root.sg27" |
| ], |
| [ |
| "BOOLEAN", |
| "BOOLEAN", |
| "INT32", |
| "INT32" |
| ], |
| [ |
| "RLE", |
| "RLE", |
| "RLE", |
| "RLE" |
| ], |
| [ |
| "SNAPPY", |
| "SNAPPY", |
| "SNAPPY", |
| "SNAPPY" |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ], |
| [ |
| null, |
| null, |
| null, |
| null |
| ] |
| ] |
| } |
| ``` |
| |
| **Count timeseries** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"count timeseries root.**"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "count" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| 4 |
| ] |
| ] |
| } |
| ``` |
| |
| **Count nodes** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"count nodes root.** level=2"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "count" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| 4 |
| ] |
| ] |
| } |
| ``` |
| |
| **Show devices** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show devices"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "devices", |
| "isAligned" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27", |
| "root.sg28" |
| ], |
| [ |
| "false", |
| "false" |
| ] |
| ] |
| } |
| ``` |
| |
| **Show devices with database** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"show devices with database"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "devices", |
| "database", |
| "isAligned" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root.sg27", |
| "root.sg28" |
| ], |
| [ |
| "root.sg27", |
| "root.sg28" |
| ], |
| [ |
| "false", |
| "false" |
| ] |
| ] |
| } |
| ``` |
| |
| **List user** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"list user"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "user" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| "root" |
| ] |
| ] |
| } |
| ``` |
| |
| **Aggregation** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select count(*) from root.sg27"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": [ |
| "count(root.sg27.s3)", |
| "count(root.sg27.s4)" |
| ], |
| "column_names": null, |
| "timestamps": [ |
| 0 |
| ], |
| "values": [ |
| [ |
| 1 |
| ], |
| [ |
| 2 |
| ] |
| ] |
| } |
| ``` |
| |
| **Group by level** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select count(*) from root.** group by level = 1"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "count(root.sg27.*)", |
| "count(root.sg28.*)" |
| ], |
| "timestamps": null, |
| "values": [ |
| [ |
| 3 |
| ], |
| [ |
| 3 |
| ] |
| ] |
| } |
| ``` |
| |
| **Group by** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select count(*) from root.sg27 group by([1635232143960,1635232153960),1s)"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": [ |
| "count(root.sg27.s3)", |
| "count(root.sg27.s4)" |
| ], |
| "column_names": null, |
| "timestamps": [ |
| 1635232143960, |
| 1635232144960, |
| 1635232145960, |
| 1635232146960, |
| 1635232147960, |
| 1635232148960, |
| 1635232149960, |
| 1635232150960, |
| 1635232151960, |
| 1635232152960 |
| ], |
| "values": [ |
| [ |
| 1, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0 |
| ], |
| [ |
| 1, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0 |
| ] |
| ] |
| } |
| ``` |
| |
| **Last** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select last s3 from root.sg27"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "expressions": null, |
| "column_names": [ |
| "timeseries", |
| "value", |
| "dataType" |
| ], |
| "timestamps": [ |
| 1635232143960 |
| ], |
| "values": [ |
| [ |
| "root.sg27.s3" |
| ], |
| [ |
| "11" |
| ], |
| [ |
| "INT32" |
| ] |
| ] |
| } |
| ``` |
| |
| **Disable align** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select * from root.sg27 disable align"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "code": 407, |
| "message": "disable align clauses are not supported." |
| } |
| ``` |
| |
| **Align by device** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"select count(s3) from root.sg27 align by device"}' http://127.0.0.1:18080/rest/v2/query |
| ``` |
| |
| ```json |
| { |
| "code": 407, |
| "message": "align by device clauses are not supported." |
| } |
| ``` |
| |
| **Select into** |
| |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -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 |
| { |
| "code": 407, |
| "message": "select into clauses are not supported." |
| } |
| ``` |
| |
| ### 3.3 nonQuery |
| |
| Request method: `POST` |
| |
| Request header: `application/json` |
| |
| Request path: `http://ip:port/rest/v2/nonQuery` |
| |
| Parameter Description: |
| |
| |parameter name |parameter type |parameter describe| |
| |:--- | :--- | :---| |
| | sql | string | query content | |
| |
| Example request: |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"sql":"CREATE DATABASE root.ln"}' http://127.0.0.1:18080/rest/v2/nonQuery |
| ``` |
| |
| Response parameters: |
| |
| |parameter name |parameter type |parameter describe| |
| |:--- | :--- | :---| |
| | code | integer | status code | |
| | message | string | message | |
| |
| Sample response: |
| ```json |
| { |
| "code": 200, |
| "message": "SUCCESS_STATUS" |
| } |
| ``` |
| |
| |
| |
| ### 3.4 insertTablet |
| |
| Request method: `POST` |
| |
| Request header: `application/json` |
| |
| Request path: `http://ip:port/rest/v2/insertTablet` |
| |
| Parameter Description: |
| |
| | parameter name |parameter type |is required|parameter describe| |
| |:---------------| :--- | :---| :---| |
| | timestamps | array | yes | Time column | |
| | measurements | array | yes | The name of the measuring point | |
| | data_types | array | yes | The data type | |
| | values | array | yes | Value columns, the values in each column can be `null` | |
| | is_aligned | boolean | yes | Whether to align the timeseries | |
| | device | string | yes | Device name | |
| |
| Example request: |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -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: |
| |
| |parameter name |parameter type |parameter describe| |
| |:--- | :--- | :---| |
| | code | integer | status code | |
| | message | string | message | |
| |
| Sample response: |
| ```json |
| { |
| "code": 200, |
| "message": "SUCCESS_STATUS" |
| } |
| ``` |
| |
| ### 3.5 insertRecords |
| |
| Request method: `POST` |
| |
| Request header: `application/json` |
| |
| Request path: `http://ip:port/rest/v2/insertRecords` |
| |
| Parameter Description: |
| |
| | parameter name |parameter type |is required|parameter describe| |
| |:------------------| :--- | :---| :---| |
| | timestamps | array | yes | Time column | |
| | measurements_list | array | yes | The name of the measuring point | |
| | data_types_list | array | yes | The data type | |
| | values_list | array | yes | Value columns, the values in each column can be `null` | |
| | devices | string | yes | Device name | |
| | is_aligned | boolean | yes | Whether to align the timeseries | |
| |
| Example request: |
| ```shell |
| curl -H "Content-Type:application/json" -H "Authorization:Basic cm9vdDpUaW1lY2hvREJAMjAyMQ==" -X POST --data '{"timestamps":[1635232113960,1635232151960,1635232143960,1635232143960],"measurements_list":[["s33","s44"],["s55","s66"],["s77","s88"],["s771","s881"]],"data_types_list":[["INT32","INT64"],["FLOAT","DOUBLE"],["FLOAT","DOUBLE"],["BOOLEAN","TEXT"]],"values_list":[[1,11],[2.1,2],[4,6],[false,"cccccc"]],"is_aligned":false,"devices":["root.s1","root.s1","root.s1","root.s3"]}' http://127.0.0.1:18080/rest/v2/insertRecords |
| ``` |
| |
| Sample response: |
| |
| |parameter name |parameter type |parameter describe| |
| |:--- | :--- | :---| |
| | code | integer | status code | |
| | message | string | message | |
| |
| Sample response: |
| ```json |
| { |
| "code": 200, |
| "message": "SUCCESS_STATUS" |
| } |
| ``` |
| |
| |
| ## 4. Configuration |
| |
| The configuration is located in 'iotdb-system.properties'. |
| |
| * Set 'enable_rest_service' to 'true' to enable the module, and 'false' to disable the module. By default, this value is' false '. |
| |
| ```properties |
| enable_rest_service=true |
| ``` |
| |
| * This parameter is valid only when 'enable_REST_service =true'. Set 'rest_service_port' to a number (1025 to 65535) to customize the REST service socket port. By default, the value is 18080. |
| |
| ```properties |
| rest_service_port=18080 |
| ``` |
| |
| * Set 'enable_swagger' to 'true' to display rest service interface information through swagger, and 'false' to do not display the rest service interface information through the swagger. By default, this value is' false '. |
| |
| ```properties |
| enable_swagger=false |
| ``` |
| |
| * The maximum number of rows in the result set that can be returned by a query. When the number of rows in the returned result set exceeds the limit, the status code `411` is returned. |
| |
| ````properties |
| rest_query_default_row_size_limit=10000 |
| ```` |
| |
| * Expiration time for caching customer login information (used to speed up user authentication, in seconds, 8 hours by default) |
| |
| ```properties |
| cache_expire=28800 |
| ``` |
| |
| |
| * Maximum number of users stored in the cache (default: 100) |
| |
| ```properties |
| cache_max_num=100 |
| ``` |
| |
| * Initial cache size (default: 10) |
| |
| ```properties |
| cache_init_num=10 |
| ``` |
| |
| * REST Service whether to enable SSL configuration, set 'enable_https' to' true 'to enable the module, and set' false 'to disable the module. By default, this value is' false '. |
| |
| ```properties |
| enable_https=false |
| ``` |
| |
| * keyStore location path (optional) |
| |
| ```properties |
| key_store_path= |
| ``` |
| |
| |
| * keyStore password (optional) |
| |
| ```properties |
| key_store_pwd= |
| ``` |
| |
| |
| * trustStore location path (optional) |
| |
| ```properties |
| trust_store_path= |
| ``` |
| |
| * trustStore password (optional) |
| |
| ```properties |
| trust_store_pwd= |
| ``` |
| |
| |
| * SSL timeout period, in seconds |
| |
| ```properties |
| idle_timeout=5000 |
| ``` |