Home

Awesome

GridDB WebAPI

Overview

GridDB WebAPI is developed using GridDB Java Client and Spring Boot.

Operating environment

Building of the library and execution of the sample programs have been checked in the following environment.

QuickStart

Build and Run

  1. Execute the command on project directory.

     $ cd webapi-ce
     $ ./gradlew build
    

    The following jar file is created.

    • webapi-ce/build/libs/griddb-webapi-ce-X.X.X.jar
  2. Set the GS_WEBAPI_HOME variable for GridDB WebAPI home directory .

     $ export GS_WEBAPI_HOME=$PWD/..
    

    Default is /var/lib/gridstore/webapi.

  3. 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
    
  4. Run with Jar

     java -jar ./build/libs/griddb-webapi-ce-X.X.X.jar
    

Execution Example

GridDB Server need to be started in advance.

  1. 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
    
  2. 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 
    
  3. 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}
    
  4. 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}]
    
  5. 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]]}]
    
  6. 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.

Community

License

GridDB WebAPI source license is Apache License, version 2.0.