GridDB WebAPI
GridDB WebAPI is developed using GridDB Java Client and Spring Boot.
Building of the library and execution of the sample programs have been checked in the following environment.
Execute the command on project directory.
$ cd webapi-ce
$ ./gradlew build
The following jar file is created.
Set the GS_WEBAPI_HOME variable for GridDB WebAPI home directory .
$ export GS_WEBAPI_HOME=$PWD/..
Default is /var/lib/gridstore/webapi.
Edit parameter files
Edit the following files on the ${GS_WEBAPI_HOME}/conf directory
- repository.json
- griddb_webapi.properties (if necessary)
When you change port (default is 8081) used in URI, please do the following steps.
1. Copy webapi-ce/src/main/resource/application.properties to your working directory
2. Edit server.port in it
Run with Jar
java -jar ./build/libs/griddb-webapi-ce-X.X.X.jar
GridDB Server need to be started in advance.
Create a container
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/containers
$ curl -X POST --basic -u admin:admin -H "Content-type:application/json" -d
'{"container_name":"test", "container_type":"COLLECTION", "rowkey":true,
"columns":[{"name":"col1", "type":"STRING", "index":["TREE"]},
{"name":"col2", "type":"INTEGER"}, {"name":"col3", "type":"BOOL"}]}'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/containers
Append a row data
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/containers/[containerName]/rows
$ curl -X PUT --basic -u admin:admin -H "Content-type:application/json" -d
'[["value", 1, true]]'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/containers/test/rows
Get a row data
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/containers/[containerName]/rows
$ curl -X POST --basic -u admin:admin -H "Content-type:application/json" -d
'{"limit":1000}'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/containers/test/rows
--> {"columns":[{"name":"col1","type":"STRING"},{"name":"col2","type":"INTEGER"},
{"name":"col3","type":"BOOL"}],"rows":[["value",1,true]],"offset":0,"limit":1000,"total":1}
Query with TQL
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/tql
$ curl -X POST --basic -u admin:admin -H "Content-type:application/json" -d
'[{"name":"test", "stmt":"select *", "columns":[]}]'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/tql
--> [{"columns":[{"name":"col1","type":"STRING"},{"name":"col2","type":"INTEGER"},
{"name":"col3","type":"BOOL"}],"results":[["value",1,true]],"offset":0,"limit":1000000,"total":1}]
Query with SQL
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/sql/select
$ curl -X POST -u admin:admin -H "Content-type:application/json; charset=UTF-8"
-d '[{"stmt":"select * from test"}]'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/sql/select
--> [{"columns":[{"name":"col1","type":"STRING"},{"name":"col2","type":"INTEGER"},
{"name":"col3","type":"BOOL"}],"results":[["value",1,true]]}]
Update with SQL
#Request http://[host]:[port]/griddb/v2/[clusterName]/dbs/public/sql/update
$ curl -X POST -u admin:admin -H "Content-type:application/json; charset=UTF-8"
-d '[{"stmt":"update test set col3 = false where col2 = 1"}]'
http://127.0.0.1:8081/griddb/v2/mycluster/dbs/public/sql/update
--> [{"status":1, "updatedRows":1,
"stmt":"update test set col3 = false where col2 = 1", "message":null}]
Please refer to the file below for more detailed information.
GridDB WebAPI source license is Apache License, version 2.0.