API_USAGE.md

September 4, 2024 · View on GitHub

API介绍

gStore通过http和Socket服务向用户提供API服务,其组件为grpc、ghttp和gserver。

HTTP API介绍

我们现在为 gRPC 和 ghttp 提供 C++、Java、Python、PHP 和 Node.js API。请参考api/http/cppapi/http/javaapi/http/pythonapi/http/phpapi/http/nodejs中的示例代码。要使用这些示例,请确保已经生成了可执行文件。**接下来,使用bin/grpcbin/ghttp命令启动http服务。**如果您知道一个正在运行的可用http服务器,并尝试连接到它,也是可以的。然后,对于c++和java代码,您需要编译目录api/http/cpp/exampleapi/http/java/example中的示例代码。

HTTP API 结构

gStore的HTTP API放在gStore根目录的API/HTTP目录中,其内容如下:

  • gStore/api/http/

    • cpp/ (the C++ API)

      • example/ (使用C++ API的示例程序)
        • Benchmark.cpp
        • GET-example.cpp
        • POST-example.cpp
        • Transaction-example.cpp
        • Makefile (编译示例程序)
      • src/
        • GstoreConnector.cpp (C++ API的源代码)
        • GstoreConnector.h
        • Makefile (编译和构建lib)
    • java/ (the Java API)

      • example/ (使用Java API的示例程序)
        • Benckmark.java
        • GETexample.java
        • POSTexample.java
        • Makefile
      • src/
        • jgsc/
          • GstoreConnector.java (Java API的源代码)
        • Makefile
    • python/ (the Python API)

      • example/ (python API的示例程序)

        • Benchmark.py

        • GET-example.py

        • POST-example.py

      • src/

        • GstoreConnector.py
    • nodejs/ (the Node.js API)

      • example/ (使用Nodejs API的示例程序)
        • POST-example.js
        • GET-example.js
      • src
        • GstoreConnector.js (Nodejs API的源代码)

        • LICENSE

        • package.json

    • php/ (the PHP API)

      • example/ (php API的示例程序)

        • Benchmark.php

        • POST-example.php

        • GET-example.php

      • src/

        • GstoreConnector.php (PHP API的源代码)

具体启动和关闭http服务可见【开发文档】-【快速入门】-【HTTP API 服务】

API 服务启动完成后,grpc 访问地址如下:

http://serverip:port/grpc/

ghttp访问地址如下:

http://serverip:port/

其中serverip为gstore服务器所在的ip地址,port为服务启动的端口

Socket API介绍

我们现在为gServer提供c++(后续会逐步完善java、python、php和nodejs)API。请参考api/socket/cpp中的示例代码。要使用这些示例,请确保已经生成了可执行文件。接下来,使用bin/gserver -s命令启动gServer服务。如果您知道一个正在运行的可用gServer服务器,并尝试连接到它,也是可以的。然后,对于c++和java代码,您需要编译目录api/socket/cpp/example中的示例代码。

具体启动和关闭gServer可见【开发文档】-【快速入门】-【Socket API 服务】

Socket API启动完成后,就可以通过Socket进行连接了,gServer的默认端口为9000

Socket API 结构

gStore的Socket API放在gStore根目录的API/Socket目录中,其内容如下:

  • gStore/api/socket/

    • cpp/ (the C++ API)

      • example/ (使用C++ API的示例程序)
        • CppAPIExample.cpp
        • Makefile (编译示例程序)
      • src/
        • Client.cpp (C++ API的源代码)
        • Client.h
        • Makefile (编译和构建lib)

http接口说明

ghttp服务接口对接方式

ghttp接口采用的是http协议,支持多种方式访问接口,如果ghttp启动的端口为9000,则接口URL地址为:

http://ip:9000/

接口支持 get请求和post请求,其中get请求参数是放在url中,post请求是将参数放在body请求 注意:GET请求中各参数如果含有特殊字符,如?,@,&等字符时,需要采用urlencode进行编码,尤其是sparql参数必须进行编码

grpc服务接口对接方式

grpc接口采用的是http协议,支持多种方式访问接口,如果grpc启动的端口为9000,则接口URL地址为:

http://ip:9000/grpc

接口支持 get请求和post请求,其中get请求参数是放在url中;post请求是将参数放在body请求或者以form表达方式请求。

post请求方式一(推荐):参数以JSON结构通过httprequestbody中的raw方式传递(要求RequestHeader参数Content-Type:application/json)

post请求方式二:参数以Form表单方式传递(要求RequestHeader参数Content-Type:application/x-www-form-urlencoded)

注意:GET请求中各参数如果含有特殊字符,如?,@,&等字符时,需要采用urlencode进行编码,尤其是sparql参数必须进行编码

接口列表

红色字体部分为最新版本新增,蓝色字体部分为最新版本修改

接口名称含义备注
系统相关接口
 check心跳信号检测ghttp心跳信号
 login登录数据库用于验证用户名和密码
 testConnect测试连接性用于检测ghttp是否连接
 getCoreVersion获取gStore版本号获取gStore版本号
 ipmanage黑白名单管理维护访问gstore的IP黑白名单
 upload上传文件支持上传的文件类型有nt、ttl、n3、rdf、txt、zip
 download下载文件支持下载gstore主目录及其子目录下的文件
 stat查询系统资源统计CPU、内存、磁盘可用空间信息
 shutdown关闭ghttp服务
数据库操作接口
 show显示数据库列表显示所有数据库列表
 load加载图数据库将数据库加载到内存中
 unload卸载图数据库将数据库从内存中卸载
 monitor统计图数据库统计指定数据库相关信息(如三元组数量等)
build(更新)构建图数据库数据库文件需在服务器本地
 drop删除图数据库可以逻辑删除和物理删除
backup(更新)备份数据库备份数据库信息
 backuppath获取备份数据库路径返回默认备份路径下./backups所有的备份文件列表
restore(更新)还原数据库还原数据库信息
 query查询数据库包括查询、删除、插入
 export导出数据库导出数据库为NT文件
batchInsert(更新)批量插入数据批量插入NT数据
batchRemove(更新)批量删除数据批量删除NT数据
 rename重命名图数据库修改图数据库名称
checkOperationState(新增)查询异步操作状态针对build, backup, restore, batch_insert, batch_remove异步执行的情况
数据库事务接口
 begin启动事务事务启动,需要与tquery配合使用
 tquery查询数据库(带事务)带事务模式的数据查询(仅限于insert和delete)
 commit提交事务事务完成后提交事务
 rollback回滚事务回滚事务到begin状态
 checkpoint将数据写入磁盘当对数据库进行了insert或delete操作后,需要手动执行checkpoint
用户管理接口
 showuser显示所有用户列表显示所有用户列表信息
 usermanage用户管理新增、删除、修改用户信息
 userprivilegemanage用户权限管理新增、删除、修改用户权限信息
 userpassword修改用户密码修改用户密码
自定义函数接口
 funquery查询算子函数分页获取自定义算子函数列表
 funcudb管理算子函数算子函数的新增、修改、删除、编译
 funreview预览算子函数在创建和更新时,可通过预览接口查看最后生成的算子函数源码
日志接口
 txnlog获取transaction的日志信息以json返回transcation的日志信息
 querylogdate获取query日志的日期列表查询已有query日志的日期列表
 querylog获取query的日志信息以json返回query的日志信息
 accesslogdate获取API日志的日期查询已有API日志的日期列表
 accesslog获取API的访问日志以json返回API的访问日志信息
推理引擎接口(新增)
 addReason新增规则
 listReason查询规则
 compileReason编译规则
 executeReason执行规则
 disableReason禁用规则
 showReason查看规则
 removeReason删除规则

接口详细说明

该节中将详细阐述各个接口的输入和输出参数,假设ghttp server的ip地址为127.0.0.1,端口为9000

系统相关接口

心跳检测 check

简要描述

  • 检测服务是否在线

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**check**

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "the ghttp server is running..."
}

登录 login

简要描述

  • 登陆用户(验证用户名和密码)
  • 更新内容:登录成功后将返回gStore的全路径信息RootPath

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**login**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
CoreVersionstring内核版本
licensetypestring证书类型(开源版还是企业版)
RootPathstringgStore根目录全路径
typestringHTTP服务类型,固定值为ghttp

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "login successfully",
    "CoreVersion": "1.0",
    "licensetype": "opensource",
    "Rootpath": "/data/gstore",
    "type": "ghttp"
}

测试连接 testConnect

简要描述

  • 测试服务器可否连接(用于workbench)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**testConnect**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
CoreVersionstring内核版本号
licensetypestring授权类型(开源版还是企业版)
typestringHTTP服务类型,固定值为ghttp

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "CoreVersion": "1.0",
    "licensetype": "opensource",
    "type": "ghttp"
}

获取版本号 getCoreVersion

简要描述

  • 获取gstore版本号(用于workbench)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**getCoreVersion**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
CoreVersionstring内核版本号
typestringHTTP服务类型,固定值为ghttp

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "CoreVersion": "1.0",
    "type": "ghttp"
}

黑白名单管理 ipmanage

简要描述

  • 黑白名单管理

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

查询黑白名单

参数名必选类型说明
operationstring操作名称,固定值为**ipmanage**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
typestring操作类型,固定值为1

保存黑白名单

参数名必选类型说明
operationstring操作名称,固定值为**ipmanage**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
typestring操作类型,固定值为2
ip_typestring名单类型,1-黑名单 2-白名单
ipsstringIP名单(多个用**,分割,支持范围配置,使用-**连接如:ip1-ip2)
//保存POST示例
{
    "operation": "ipmanage",
    "username": "root",
    "password": "123456",
    "type": "2",
    "ip_type":"1",
    "ips": "192.168.1.111,192.168.1.120-192.168.1.129"
}

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
ResponseBodyobject返回数据(只有查询时才返回)
  ip_typestring名单类型,1-黑名单 2-白名单
  ipsarray名单列表

返回示例

// 查询黑白名单返回
{
    "StatusCode": 0,
    "StatusMsg": "success",
    "ResponseBody": {
        "ip_type": "1",
        "ips": [
            "192.168.1.111",
            "192.168.1.120-192.168.1.129"
        ]
    }
}
// 保存黑白名单返回
{
    "StatusCode": 0,
    "StatusMsg": "success"
}

上传文件 upload

简要描述

  • 上传文件,目前支持的上传文件格式为nt、ttl、txt

请求URL

  • ghttp服务: http://127.0.0.1:9000/file/upload【注意,地址变化】
  • grpc服务: http://127.0.0.1:9000/grpc/file/upload【注意,地址变化】

请求方式

  • POST

参数传递方式

  • POST请求,httprequest 中的body中的form-data(要求RequestHeader参数Content-Type:multipart/form-data)

参数

参数名必选类型说明
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
fileboudary待上传的文件的二进制文件流

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
filepathstring上传成功后返回的相对路径地址

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "filepath": "./upload/test_20221101164622.nt"
}

下载文件 download

简要描述

  • 下载文件,目前支持的下载gStore根目录下的文件

请求URL

  • ghttp服务: http://127.0.0.1:9000/file/download【注意,地址变化】
  • grpc服务: http://127.0.0.1:9000/grpc/file/download【注意,地址变化】

请求方式

  • POST

参数传递方式

  • post请求:参数以Form表单方式传递(要求RequestHeader参数Content-Type:application/x-www-form-urlencoded)

参数

参数名必选类型说明
usernamestring用户名(该用户名默认是system)
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
filepathstring待下载的文件路径(只支持下载gstore主目录及子目录下的文件)

返回值

以二进制流的形式响应

返回示例

Response Headers示例如下:

Content-Range: bytes 0-389/389
Content-Type: application/octet-stream
Date: Tue, 01 Nov 2022 17:21:40 GMT
Content-Length: 389
Connection: Keep-Alive

系统资源统计 stat

简要描述

  • 统计系统资源信息

请求URL

  • ghttp服务: http://127.0.0.1:9000/ghttp/api
  • grpc服务: http://127.0.0.1:9000/grpc/api

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为stat
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
cup_usagestringCPU使用比例
mem_usagestring内存使用(单位MB)
disk_availablestring可用磁盘空间(单位MB)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "cpu_usage": "10.596026",
    "mem_usage": "2681.507812",
    "disk_available": "12270"
}

关闭API服务 shutdown

简要描述

  • 关闭ghttp

请求URL

  • ghttp服务: http://127.0.0.1:9000/shutdown【注意,地址变化】
  • grpc服务: http://127.0.0.1:9000/grpc/shutdown【注意,地址变化】

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
usernamestring用户名(该用户名默认是system)
passwordstring密码(该密码需要到服务器的system.db/password.txt文件中查看)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Server stopped successfully."
}

数据库操作接口

查看 show

简要描述

  • 显示所有数据库列表

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**show**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
ResponseBodyarrayJSON数组(每个都是一个数据库信息)
  databasestring数据库名称
  creatorstring创建者
  built_timestring创建时间
  statusstring数据库状态

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Get the database list successfully!",
    "ResponseBody": [
        {
            "database": "lubm",
            "creator": "root",
            "built_time": "2021-08-22 11:08:57",
            "status": "loaded"
        },
        {
            "database": "movie",
            "creator": "root",
            "built_time": "2021-08-27 20:56:56",
            "status": "unloaded"
        }
    ]
}

加载 load

简要描述

  • 将数据库加载到内存中,load操作是很多操作的前置条件,如query,monitor等

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**load**
usernamestring用户名
encryptionstring为空,则密码为明文,为1表示用md5加密
passwordstring密码(明文)
db_namestring数据库名称(不需要.db)
csrstring是否加载CSR资源,默认为0(使用高级查询函数时,需要设置为1)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
csrstring是否加载CSR资源

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Database loaded successfully.",
    "csr": "1"
}

卸载 unload

简要描述

  • 将数据库从内存中卸载(所有的更改都会刷回硬盘)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**unload**
db_namestring数据库名称(不需要.db)
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,=1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Database unloaded."
}

统计 monitor

简要描述

  • 获取数据库统计信息(需要先load数据库)
  • 更新内容:返回值中参数的名称调整(把含有空格和下划线的参数改用驼峰式,如:triple num -> tripleNum)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**monitor**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,=1表示用md5加密
db_namestring数据库名称(不需要.db)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
databasestring数据库名称
creatorstring创建者
builtTimestring创建时间
tripleNumstring三元组数量
entityNumint实体数量
literalNumint字面值数量(属性值)
subjectNumint主语数量
predicateNumint谓词数量
connectionNumint连接数量
diskUsedint磁盘空间(MB)
subjectListArray实体类型统计

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "database": "test_lubm",
    "creator": "root",
    "builtTime": "2021-08-27 21:29:46",
    "tripleNum": "99550",
    "entityNum": 28413,
    "literalNum": 0,
    "subjectNum": 14569,
    "predicateNum": 17,
    "connectionNum": 0,
    "diskUsed": 3024,
    "subjectList": [
        {
            "name": "ub:Lecturer",
            "value": 93
        },
        {
            "name": "ub:AssistantProfessor",
            "value": 146
        },
        {
            "name": "ub:University",
            "value": 1
        }
    ]
}

构建 build(更新)

简要描述

  • 根据已有的NT文件创建数据库,或者构建空库(1.2版本支持)
  • 文件必须存在gStore服务器上
  • 可先通过3.1.6upload接口上传数据文件到gStore服务器

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**build**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称(不需要.db)
db_pathstring数据库文件路径,支持的文件类型为(可以是绝对路径,也可以是相对路径,相对路径以gStore安装根目录为参照目录)
asyncstring如果async为“true”,则立即返回查询opt_id,服务器异步处理逻辑,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息
callbackstring回调接口,例如:http://127.0.0.1:8080/callback

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
failed_numint构建失败数量
opt_idstring返回操作opt_id,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息

返回示例( 默认)

{
    "StatusCode": 0,
    "StatusMsg": "Import RDF file to database done.",
    "failed_num": 0,
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (async=“true“)

{
    "StatusCode": 0,
    "StatusMsg": "Operation Success.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例(callback=“http://127.0.0.1:8080/callback”)

# 向callback进行数据推送,数据如下
{
    "operation": "build",
    "StatusCode": 0,
    "StatusMsg": "Import RDF file to database done.",
    "failed_num": 0,
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

删除 drop

简要描述

  • 将数据库删除(可以逻辑删除,也可以物理删除)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**drop**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称(不需要.db)
is_backupstringtrue:代表逻辑删除,false:代表物理删除(默认为true),如果是逻辑删除,将文件夹变成.bak文件夹,用户可以通过修改文件夹名为.db,然后调用 bin/ginit -db 数据库名 的方式将其加入system数据库中,从而实现恢复

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Database test_lubm dropped."
}

备份 backup(更新)

简要描述

  • 对数据库进行备份

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为backup
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring需要操作的数据库
backup_pathstring备份文件路径(可以是相对路径,也可以是绝对路径,相对路径以gStore根目录为参考),默认为gStore根目录下的backups目录
asyncstring如果async为“true”,则立即返回查询opt_id,服务器异步处理逻辑,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息
callbackstring回调接口,例如:http://127.0.0.1:8080/callback

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
backupfilepathstring备份文件路径(该值可以作为restore的输入参数值)
opt_idstring返回操作opt_id,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息

返回示例(默认)

{
    "StatusCode": 0,
    "StatusMsg": "Database backup successfully.",
    "backupfilepath": "./backups/lubm.db_210828211529",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (async=“true“)

{
    "StatusCode": 0,
    "StatusMsg": "Operation Success.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例(callback=“http://127.0.0.1:8080/callback”)

# 向callback进行数据推送,数据如下
{
    "operation": "backup",
    "StatusCode": 0,
    "StatusMsg": "Database backup successfully.",
    "backupfilepath": "./backups/lubm.db_210828211529",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

查询备份路径 backuppath

简要描述

  • 获取数据库在默认备份路径下的所有备份文件

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为backuppath
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring需要查询的数据库名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
pathsArray备份文件路径(该值可以作为restore的输入参数值)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "paths": [
        "./backups/lubm.db_220828211529",
        "./backups/lubm.db_221031094522"
    ]
}

还原 restore(更新)

简要描述

  • 对备份数据库进行还原

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**restore**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring需要操作的数据库
backup_pathstring备份文件完整路径【带时间戳的】(可以是相对路径,也可以是绝对路径,相对路径以gStore根目录为参考)
asyncstring如果async为“true”,则立即返回查询opt_id,服务器异步处理逻辑,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息
callbackstring回调接口,例如:http://127.0.0.1:8080/callback

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
opt_idstring返回操作opt_id,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Database lumb restore successfully.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (async=“true“)

{
    "StatusCode": 0,
    "StatusMsg": "Operation Success.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例(callback=“http://127.0.0.1:8080/callback”)

# 向callback进行数据推送,数据如下
{
    "StatusCode": 0,
    "StatusMsg": "Database lumb restore successfully.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

查询 query

简要描述

  • 对数据库进行查询

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**query**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring需要操作的数据库
formatstring结果集返回格式(可选值有:json,html和file),默认是json
sparqlstring要执行的sparql语句(如果是get请求的话,sparql需要进行url编码)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
headobject头部信息
  linkarray
  varsarray
resultsobject结果信息(详情请见返回示例)
  bindingsarray
AnsNumint结果数
OutputLimitint最大返回结果数(-1为不限制)
ThreadIdstring查询线程编号
QueryTimestring查询耗时(毫秒)

返回示例

{
    "head": {
        "link": [],
        "vars": [
            "x"
        ]
    },
    "results": {
        "bindings": [
            {
                "x": {
                    "type": "uri",
                    "value": "十面埋伏"
                }
            },
            {
                "x": {
                    "type": "uri",
                    "value": "投名状"
                }
            },
            {
                "x": {
                    "type": "uri",
                    "value": "如花"
                }
            }
        ]
    },
    "StatusCode": 0,
    "StatusMsg": "success",
    "AnsNum": 15,
    "OutputLimit": -1,
    "ThreadId": "140595527862016",
    "QueryTime": "1"
}

导出 export

简要描述

  • 对数据库进行导出

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**export**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring需要操作的数据库
db_pathstring导出路径(可以是相对路径,也可以是绝对路径,相对路径以gStore根目录为参考)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
filepathstring导出文件的路径

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Export the database successfully.",
    "filepath": "export/lubm_210828214603.nt"
}

批量插入 batchInsert(更新)

简要描述

  • 批量插入数据

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为batchInsert
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
filestring要插入的数据nt文件或zip包(可以是相对路径也可以是绝对路径),与dir参数不能同时为空值,二者都有值时,取file参数
dirstring要插入的数据nt文件夹(可以是相对路径也可以是绝对路径),与file参数不能同时为空值,二者都有值时,取file参数
asyncstring如果async为“true”,则立即返回查询opt_id,服务器异步处理逻辑,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息
callbackstring回调接口,例如:http://127.0.0.1:8080/callback

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
success_numint执行成功的数量
failed_numint执行失败数量
opt_idstring返回操作opt_id,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息

返回示例 (默认)

{
    "StatusCode": 0,
    "StatusMsg": "Batch insert data successfully.",
    "success_num": 25,
    "failed_num": 0,
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (async=“true”)

{
    "StatusCode": 0,
    "StatusMsg": "Operation Success.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (callback=“http://127.0.0.1:8080/callback”)

# 向callback进行数据推送,数据如下
{
    "operation": "batchInsert",
    "StatusCode": 0,
    "StatusMsg": "Batch insert data successfully.",
    "success_num": 25,
    "failed_num": 0,
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

批量删除 batchRemove(更新)

简要描述

  • 批量插入数据

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**batchRemove**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
filestring要删除的数据nt文件或者zip包(可以是相对路径也可以是绝对路径)
asyncstring如果async为“true”,则立即返回查询opt_id,服务器异步处理逻辑,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息
callbackstring回调接口,例如:http://127.0.0.1:8080/callback

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
success_numint执行成功的记录数
opt_idstring返回操作opt_id,客户端可通过opt_id调用checkOperationState接口,查看操作状态信息

返回示例 (默认)

{
    "StatusCode": 0,
    "StatusMsg": "Batch remove data successfully.",
    "success_num": 25,
    "opt_id": "XXXX-XXXX-XXXX-XXXX",
}

返回示例 ((async=“true)

{
    "StatusCode": 0,
    "StatusMsg": "Operation Success.",
    "opt_id": "XXXX-XXXX-XXXX-XXXX"
}

返回示例 (callback=“http://127.0.0.1:8080/callback”)

# 向callback进行数据推送,数据如下
{
    "operation": "batchRemove",
    "StatusCode": 0,
    "StatusMsg": "Batch remove data successfully.",
    "success_num": 25,
    "opt_id": "XXXX-XXXX-XXXX-XXXX",
}

重命名 rename

简要描述

  • 重命名数据库

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为rename
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称
new_namestring数据库新名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success"
}

查询异步操作状态 checkOperationState

简要描述

  • 查询异步操作状态(build, backup, restore, batch_insert, batch_remove)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为checkOperationState
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
opt_idstring操作序列号

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
stateint执行状态(0 执行中,、-1 执行失败、1 已完成)
success_numint执行成功的记录数
failed_numint执行失败的记录数

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Batch insert data successfully.",
    "state": 1,
    "success_num": 100,
    "failed_num": 0
}

数据库事务接口

开启 begin

简要描述

  • 开始事务

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**begin**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称
isolevelstring事务隔离等级 1:SR(seriablizable)2:SI(snapshot isolation) 3:RC(read committed)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
TIDstring事务ID(该ID非常重要,需要以这个作为参数)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "transaction begin success",
    "TID": "1"
}

执行 tquery

简要描述

  • 事务型查询

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**tquery**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称
tidstring事务ID
sparqlstringsparql语句

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
headJSON头部信息(执行查询类语句时才返回此字段)
resultsJSON结果信息(执行查询类语句时才返回此字段)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success"
}

提交 commit

简要描述

  • 事务提交

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**commit**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,=1表示用md5加密
db_namestring数据库名称
tidstring事务ID

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "transaction commit success. TID: 1"
}

回滚 rollback

简要描述

  • 事务回滚

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**rollback**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,=1表示用md5加密
db_namestring数据库名称
tidstring事务ID

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "transaction rollback success. TID: 2"
}

落盘 checkpoint

简要描述

  • 收到将数据刷回到硬盘(使得数据最终生效)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**checkpoint**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Database saved successfully."
}

用户管理接口

查看 showuser

简要描述

  • 显示所有用户信息

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**showuser**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
ResponseBodyarrayJSON对象数组
  usernamestring用户名
  passwordstring密码
  query_privilegestring查询权限(数据库名以逗号分隔)
  update_privilegestring更新权限(数据库名以逗号分隔)
  load_privilegestring加载权限(数据库名以逗号分隔)
  unload_privilegestring卸载权限(数据库名以逗号分隔)
  backup_privilegestring备份权限(数据库名以逗号分隔)
  restore_privilegestring还原权限(数据库名以逗号分隔)
  export_privilegestring导出权限(数据库名以逗号分隔)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "ResponseBody": [
        {
            "username": "liwenjie",
            "password": "shuaige1982",
            "query_privilege": "",
            "update_privilege": "",
            "load_privilege": "",
            "unload_privilege": "",
            "backup_privilege": "",
            "restore_privilege": "",
            "export_privilege": ""
        },
        {
            "username": "root",
            "password": "123456",
            "query_privilege": "all",
            "update_privilege": "all",
            "load_privilege": "all",
            "unload_privilege": "all",
            "backup_privilege": "all",
            "restore_privilege": "all",
            "export_privilege": "all"
        }
    ]
}

增删改 usermanage

简要描述

  • 对用户进行管理(包括增、删、改)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**usermanage**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
typestring操作类型(1:adduser,2:deleteUser,3:alterUserPassword)
op_usernamestring操作的用户名
op_passwordstring操作的密码(如果是修改密码,该密码为要修改的密码)(如果包含特殊字符,且采用get请求,需要对其值进行URLEncode编码)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 1004,
    "StatusMsg": "username already existed, add user failed."
}

备注说明

  • 新增的用户默认具备的接口权限:loginchecktestConnectgetCoreVersionshowfunqueryfuncudbfunreviewuserpassword
  • 具备query权限的用户还同时具备以下接口权限:querymonitor
  • 具备update权限的用户还同时具备以下接口权限:batchInsertbatchRemovebegintquerycommitrollback
  • 不在授权管理范围的接口权限只有root用户才能调用,如:builddropusermanageshowuseruserprivilegemanagetxnlogcheckpointshutdownquerylogaccesslogipmanage

授权 userprivilegemanage

简要描述

  • 对用户权限进行管理(包括增、删、改)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**userprivilegemanage**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
typestring操作类型(1:add privilege,2:delete privilege, 3:clear privilege )
op_usernamestring操作的用户名
privilegesstring需要操作的权限序号(多个权限使用逗号 , 分隔,如果是clear Privilege 可以为空)1:query, 2:load, 3:unload, 4:update, 5:backup, 6:restore, 7:export
db_namestring需要操作的数据库(如果是clearPrivilege可以为空)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "add privilege query successfully. \r\nadd privilege load successfully. \r\nadd privilege unload successfully. \r\nadd privilege update successfully. \r\nadd privilege backup successfully. \r\n"
}

修改密码 userpassword

简要描述

  • 修改用户密码

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**userpassword**
usernamestring用户名
passwordstring密码
encryptionstring为空,则密码为明文,为1表示用md5加密
op_passwordstring新密码(明文)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "change password done."
}

自定义函数接口

查询 funquery

简要描述

  • 算子函数查询

请求方式

  • POST

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**funquery**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
funInfoobject查询参数
  funNamestring函数名称
  funStatusstring状态(1-待编译 2-已编译 3-异常)

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
listarrayJSON数组(如果没有数据,则不返回空数组)
  funNamestring名称
  funDescstring描述
  funArgsstring参数类型(1-无K跳参数 2-有K跳参数)
  funBodystring函数内容
  funSubsstring函数子方法
  funStatusstring状态(1-待编译 2-已编译 3-异常)
  lastTimestring最后编辑时间(yyyy-MM-dd HH:mm:ss)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "list": [
        {
            "funName": "demo",
            "funDesc": "this is demo",
            "funArgs": "2",
            "funBody": "{\nstd::cout<<\"uid=\"<<uid<<endl;\nstd::cout<<\"vid=\"<<vid<<endl;\nstd::cout<<\"k=\"<<k<<endl;\nreturn \"success\";\n}",
            "funSubs": "",
            "funStatus": "1",
            "lastTime": "2022-03-15 11:32:25"
        }
    ]
}

增删改编译 funcudb

简要描述

  • 算子函数管理(新增、修改、删除、编译)

请求方式

  • POST

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**funcudb**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
typestring1:新增,2:修改,3:删除,4:编译
funInfoobject算子函数
  funNamestring函数名称
  funDescstring描述
  funArgsstring参数类型(1无K跳参数,2有K跳参数)
  funBodystring函数内容(以{}包裹的内容)
  funSubsstring子函数(可用于fun_body中调用)
  funReturnstring返回类型(path:返回路径类结果,value:返回值类结果)

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success"
}

预览 funreview

简要描述

  • 预览算子函数

请求方式

  • POST

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**funreview**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
funInfoobject算子函数
  funNamestring函数名称
  funDescstring描述
  funArgsstring参数类型(1无K跳参数,2有K跳参数)
  funBodystring函数内容(以{}包裹的内容)
  funSubsstring子函数(可用于fun_body中调用)
  funReturnstring返回类型(path:返回路径类结果,value:返回值类结果)

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
resultstring函数源码(需要进行decode转码处理)

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "Result": "%23include+%3Ciostream%3E%0A%23include+%22..%2F..%2FDatabase%2FCSRUtil.h%22%0A%0Ausing+..."
}

日志接口

事务日志 txnlog

简要描述

  • 获取事务日志(该功能只对root用户生效)
  • 更新内容:增加分页查询参数

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**txnlog**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
pageNoint页号,取值范围1-N,默认1
pageSizeint每页数,取值范围1-N,默认10

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
totalSizeint总数
totalPageint总页数
pageNoint当前页号
pageSizeint每页数
listarray日志JSON数组
  db_namestring数据库名称
  TIDstring事务ID
  userstring操作用户
  statestring状态
COMMITED-提交
RUNNING-执行中
ROLLBACK-回滚
ABORTED-中止
  begin_timestring开始时间
  end_timestring结束时间

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Get Transaction log success",
    "totalSize": 2,
    "totalPage": 1,
    "pageNo": 1,
    "pageSize": 10,
    "list": [
        {
            "db_name": "lubm2",
            "TID": "1",
            "user": "root",
            "begin_time": "1630376221590",
            "state": "COMMITED",
            "end_time": "1630376277349"
        },
        {
            "db_name": "lubm2",
            "TID": "2",
            "user": "root",
            "begin_time": "1630376355226",
            "state": "ROLLBACK",
            "end_time": "1630376379508"
        }
    ]
}

获取查询日志日期 querylogdate

简要描述

  • 获取gstore的查询日志的日期(用于querylog接口的date选择参数)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**querylogdate**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
listarray日期列表

返回示例

{
	"StatusCode":0,
    "StatusMsg":"Get query log date success",
	"list":[
		"20220828",
        "20220826",
        "20220825",
        "20220820"
    ]
}

查询日志 querylog

简要描述

  • 获取查询日志

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**querylog**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
datestring日期,格式为yyyyMMdd
pageNoint页号,取值范围1-N,默认1
pageSizeint每页数,取值范围1-N,默认10

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
totalSizeint总数
totalPageint总页数
pageNoint当前页号
pageSizeint每页数
listJSONArray日志JSON数组
 QueryDateTimestring查询时间
 SparqlstringSPARQL语句
 Formatstring查询返回格式
 RemoteIPstring请求IP
 FileNamestring查询结果集文件
 QueryTimeint耗时(毫秒)
 AnsNumint结果数

返回示例

{
	"StatusCode":0,
    "StatusMsg":"Get query log success",
	"totalSize":64,
	"totalPage":13,
	"pageNo":2,
	"pageSize":5,
	"list":[
		{
			"QueryDateTime":"2021-11-16 14:55:52:90ms:467microseconds",
			"Sparql":"select ?name where { ?name <不喜欢> <Eve>. }",
			"Format":"json",
			"RemoteIP":"183.67.4.126",
			"FileName":"140163774674688_20211116145552_847890509.txt",
			"QueryTime":0,
			"AnsNum":2
		}
        ......
    ]
}

获取访问日志日期 accesslogdate

简要描述

  • 获取API日志的日期(用于accesslog接口的date选择参数)

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**accesslogdate**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
listarray日期列表

返回示例

{
	"StatusCode":0,
    "StatusMsg":"Get access log date success",
	"list":[
		"20220913",
        "20220912",
        "20220911",
        "20220818",
        "20220731",
        "20220712",
        "20220620",
    ]
}

访问日志 accesslog

简要描述

  • 获取API的访问日志

请求方式

  • GET/POST

参数传递方式

  • GET请求,参数直接以URL方式传递
  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为**accesslog**
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
datestring日期,格式为yyyyMMdd
pageNoint页号,取值范围1-N,默认1
pageSizeint每页数,取值范围1-N,默认10

返回值

参数类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
totalSizeint总数
totalPageint总页数
pageNoint当前页号
pageSizeint每页数
listJSONArray日志JSON数组
 ipstring访问ip
 operationstring操作类型
 createtimestring操作时间
 codestring操作结果(参考附表:返回值代码表)
 msgstring日志描述

返回示例

{
	"StatusCode":0,
    "StatusMsg":"Get access log success",
	"totalSize":64,
	"totalPage":13,
	"pageNo":2,
	"pageSize":5,
	"list":[
		{
            "ip":"127.0.0.1",
            "operation":"StopServer",
            "createtime":"2021-12-14 09:55:16", 
            "code":0,
            "msg":"Server stopped successfully."
        }
        ......
    ]
}

推理引擎

参数type共有7种操作类型:

  • 1:addReason
  • 2:listReason
  • 3:compileReason
  • 4:executeReason
  • 5:disableReason
  • 6.showReason
  • 7.deleteReason

新增 addReason

简要描述

  • 新增推理规则

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型 : "1"
ruleinfoObject规则信息:"ruleinfo": {"rulename":"", ...},规则详情
  rulenamestring规则名称(同一个数据库,规则名称唯一)
  descriptionstring规则描述
  isenableint是否启用,可选值:1启用 0禁用
  typeint推理类型,可选值:1关系推理 0属性推理
  logicint条件与条件的关系,可选值:1逻辑与 0逻辑或
  conditionsarray规则集合
    patternsarray三元组集合
      subjectstring主语
      predicatestring谓词
      objectstring宾语
    filtersarray过滤条件
    count_infoObject聚集函数(待定)
  returnObject返回对象
    sourcestring起始节点
    targetstring终止节点(关系推理有用)
    labelstring谓词(系统自动加上Rule:前缀)
    valuestring属性值(属性推理有用)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

关系推理规则示例

{
	"rulename": "舅舅",
	"description": "母亲的男性同胞是舅舅",
	"isenable": 1,
	"type": 1,
	"logic": 1,
	"conditions": [
		{
			"patterns": [
				{
					"subject": "?x ",
					"predicate": "<母亲>",
					"object": "?y"
				},
				{
					"subject": "?y ",
					"predicate": "<父亲>",
					"object": "?z"
				},
				{
					"subject": "?k",
					"predicate": "<父亲>",
					"object": "?z"
				},
				{
					"subject": "?k",
					"predicate": "<性别>",
					"object": "\"\"^^<http://www.w3.org/2001/XMLSchema#string>"
				}
			],
			"filters": [],
			"count_info": {}
		}
	],
	"return": {
		"source": "?x",
		"target": "?k",
		"label": "舅舅"
	}
}

属性推理规则示例

{
	"rulename": "孤儿",
	"description": "父母双亡为孤儿",
	"isenable": 1,
	"type": 0,
	"logic": 1,
	"conditions": [
		{
			"patterns": [
				{
					"subject": "?x ",
					"predicate": "<父亲>",
					"object": "?y"
				},
				{
					"subject": "?x",
					"predicate": "<母亲>",
					"object": "?z"
				},
				{
					"subject": "?y",
					"predicate": "<状态>",
					"object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
				},
				{
					"subject": "?z",
					"predicate": "<状态>",
					"object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
				}
			],
			"filters": [],
			"count_info": {}
		}
	],
	"return": {
		"source": "?x",
		"label": "状态",
		"value": "\"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>"
	}
}

返回值

{
    "StatusCode": 0,
    "StatusMsg": "Save Successfully! the file path is ./dbhome/lubm.db/reason_rule_files/test.json"
}

查询 listReason

简要描述

  • 显示规则列表

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“2”

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
numint规则数量
listJSONArray规则名称列表
 rulenamestring规则名称(同一个数据库,规则名称唯一)
 descriptionstring规则描述
 isenableint是否启用,可选值:1启用 0禁用
 typeint推理类型,可选值:1关系推理 0属性推理
  logicint条件与条件的关系,可选值:1逻辑与 0逻辑或
 conditionsarray规则集合
  conditionarry规则
   patternsarray三元组集合
    subjectstring主语
    predicatestring谓词
    objectstring宾语
   filtersarray过滤条件
   count_infoObject聚集函数(待定)
 returnObject返回对象
  sourcestring起始节点
  targetstring终止节点(关系推理有用)
  labelstring谓词(系统自动加上Rule:前缀)
  valuestring属性值(属性推理有用)
 statusstring状态
 insert_sparqlstringinsert_sparql语句
 delete_sparqlstringdelete_sparql语句
 createtimestring创建时间

返回值

{
    "StatusCode": 0,
    "StatusMsg": "ok",
    "list": [
        {
            "ruleid": "002",
            "rulename": "孤儿",
            "description": "父母双亡为孤儿",
            "conditions": [
                {
                    "condition": {
                        "patterns": [
                            {
                                "subject": "?x ",
                                "predicate": "<父亲>",
                                "object": "?y"
                            },
                            {
                                "subject": "?x",
                                "predicate": "<母亲>",
                                "object": "?z"
                            },
                            {
                                "subject": "?y",
                                "predicate": "<状态>",
                                "object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
                            },
                            {
                                "subject": "?z",
                                "predicate": "<状态>",
                                "object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
                            }
                        ],
                        "filters": [],
                        "count_info": {}
                    },
                    "logic": 1
                }
            ],
            "isenable": 1,
            "type": 0,
            "return": {
                "source": "?x",
                "label": "状态",
                "value": "\"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>"
            },
            "createtime": "2023-12-29 16:58:00",
            "status": "已执行",
            "insert_sparql": "insert {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>. } where {  ?x  <父亲> ?y. ?x <母亲> ?z. ?y <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. ?z <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. }",
            "delete_sparql": "delete where {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>.}"
        },
        {
            "ruleid": "001",
            "rulename": "舅舅2",
            "description": "母亲的男性同胞是舅舅",
            "conditions": [
                {
                    "condition": {
                        "patterns": [
                            {
                                "subject": "?x ",
                                "predicate": "<母亲>",
                                "object": "?y"
                            },
                            {
                                "subject": "?y ",
                                "predicate": "<父亲>",
                                "object": "?z"
                            },
                            {
                                "subject": "?k",
                                "predicate": "<父亲>",
                                "object": "?z"
                            },
                            {
                                "subject": "?k",
                                "predicate": "<性别>",
                                "object": "\"\"^^<http://www.w3.org/2001/XMLSchema#string>"
                            }
                        ],
                        "filters": [],
                        "count_info": {}
                    },
                    "logic": 1
                }
            ],
            "isenable": 1,
            "type": 1,
            "return": {
                "source": "?x",
                "target": "?k",
                "label": "舅舅",
                "value": ""
            },
            "createtime": "2023-12-29 16:58:00",
            "status": "已执行",
            "insert_sparql": "insert { ?x <Rule:舅舅> ?k. } where {  ?x  <母亲> ?y. ?y  <父亲> ?z. ?k <父亲> ?z. ?k <性别> \"\"^^<http://www.w3.org/2001/XMLSchema#string>. }",
            "delete_sparql": "delete where {?x <Rule:舅舅> ?y.}"
        }
    ],
    "num": 2
}

编译 compileReason

简要描述

  • 规则编译

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“3”
rulenamestring规则名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
insert_sparqlstringinsert sparql语句
delete_sparqlstringdelete sparql语句

返回值

{
    "insert_sparql": "insert {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>. } where {  ?x  <父亲> ?y. ?x <母亲> ?z. ?y <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. ?z <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. }",
    "delete_sparql": "delete where {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>.}",
    "StatusCode": 0,
    "StatusMsg": "ok"
}

执行 executeReason

简要描述

  • 规则执行

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“4”
rulenamestring规则名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
insert_sparqlstringinsert sparql语句
AnsNumint成功数量

返回值

{
    "insert_sparql": "insert {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>. } where {  ?x  <父亲> ?y. ?x <母亲> ?z. ?y <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. ?z <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. }",
    "AnsNum": 0, //本次执行影响的记录数(如果之前已经有相关关系,则不计算)
    "StatusCode": 0,
    "StatusMsg": "ok"
}

禁用 disableReason

简要描述

  • 规则失效

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“5”
rulenamestring规则名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
delete_sparqlstringdelete sparql语句
AnsNumint成功数量

返回值

{
    "delete_sparql": "delete where {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>.}",
    "AnsNum": 1, //本次执行影响的记录数(如果之前已经有相关关系,则不计算)
    "StatusCode": 0,
    "StatusMsg": "ok"
}

详情 showReason

简要描述

  • 显示规则明细

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“6”
rulenamestring规则名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
ruleinfoObjectObject
insert_sparqlstringinsert sparql语句
delete_sparqlstringdelete sparql语句
statusstring状态
rulenamestring规则名称(同一个数据库,规则名称唯一)
descriptionstring规则描述
isenableint是否启用
typeint1:表示关系推理 0:表示属性推理
 logicint条件与条件的关系,可选值:1逻辑与 0逻辑或
createtimestring创建时间
conditionsJSONArray规则条件(数组)
 conditionObject规则
  patternsarray三元组集合
   subjectstring主语
   predicatestring谓词
   objectstring宾语
  filtersarray过滤条件
  count_infoObject聚集函数(待定)
returnObject返回对象
 sourcestring起始节点
 targetstring终止节点(关系推理有用)
 labelstring谓词(系统自动加上Rule:前缀)
 valuestring属性值(属性推理有用)

返回值

{
    "ruleid": "002",
    "rulename": "孤儿",
    "description": "父母双亡为孤儿",
    "conditions": [
        {
            "condition": {
                "patterns": [
                    {
                        "subject": "?x ",
                        "predicate": "<父亲>",
                        "object": "?y"
                    },
                    {
                        "subject": "?x",
                        "predicate": "<母亲>",
                        "object": "?z"
                    },
                    {
                        "subject": "?y",
                        "predicate": "<状态>",
                        "object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
                    },
                    {
                        "subject": "?z",
                        "predicate": "<状态>",
                        "object": "\"去世\"^^<http://www.w3.org/2001/XMLSchema#string>"
                    }
                ],
                "filters": [],
                "count_info": {}
            },
            "logic": 1
        }
    ],
    "isenable": 1,
    "type": 0,
    "return": {
        "source": "?x",
        "label": "状态",
        "value": "\"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>"
    },
    "createtime": "2023-12-29 16:58:00",
    "status": "已失效", //当前规则状态
    "insert_sparql": "insert {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>. } where {  ?x  <父亲> ?y. ?x <母亲> ?z. ?y <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. ?z <状态> \"去世\"^^<http://www.w3.org/2001/XMLSchema#string>. }",
    "delete_sparql": "delete where {?x <Rule:状态> \"孤儿\"^^<http://www.w3.org/2001/XMLSchema#string>.}",
    "StatusCode": 0,
    "StatusMsg": "ok"
}

删除 deleteReason

简要描述

  • 删除规则

请求方式

  • 支持POST,不支持GET

参数传递方式

  • POST请求,httprequest 中的body中的raw,以JSON结构传递

参数

参数名必选类型说明
operationstring操作名称,固定值为reasonManage
usernamestring用户名
passwordstring密码(明文)
encryptionstring为空,则密码为明文,为1表示用md5加密
db_namestring数据库名
typestring操作类型:“7”
rulenamestring规则名称

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回值

{
    "StatusCode": 0,
    "StatusMsg": "the reason file has been remove successfully! file path:./dbhome/reason.db/reason_rule_files/孤儿.json"
}

附表1 返回值代码表

代码值涵义
0Success
1000The method type is not support
1001Authentication Failed
1002Check Privilege Failed
1003Param is illegal
1004The operation conditions are not satisfied
1005Operation failed
1006Add privilege Failed
1007Loss of lock
1008Transcation manage Failed
1100The operation is not defined
1101IP Blocked

socket接口说明

接口对接方式

gServer接口采用的是socket协议,支持多种方式访问接口,如果Main目录下的gserver启动的端口为9000,则接口对接内容如下:

接口地址:

http://ip:9000/

接口支持输入一个json格式的参数列表,如下所示:

{"op": "[op_type]", "[paramname1]": "[paramvalue1]", "[paramname2]": "[paramvalue2]"}

接口列表

接口名称含义备注
build构建图数据库数据库文件需在服务器本地
load加载图数据库将数据库加载到内存中
unload卸载图数据库将数据库从内存中卸载
drop删除图数据库可以逻辑删除和物理删除
show显示数据库列表显示所有数据库列表
query查询数据库包括查询、删除、插入
stop关闭服务端只有root用户可以操作
close关闭客户端连接处理客户端关闭连接请求
login登陆数据库主要是用于验证用户名和密码

接口详细说明

该节中将详细阐述各个接口的输入和输出参数,假设gserver的ip地址为127.0.0.1,端口为9000

(1) build 创建数据库

简要描述

  • 根据已有的NT文件创建数据库
  • 文件必须存在gStore服务器上

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为build
db_namestring数据库名称(不需要.db)
db_pathstring数据库文件路径(可以是绝对路径,也可以是相对路径,相对路径以gStore安装根目录为参照目录)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Import RDF file to database done."
}

(2) load

简要描述

  • 将数据库加载到内存中,load操作是很多操作的前置条件,如query等

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为load
db_namestring数据库名称(不需要.db)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Load database successfully."
}

(3)unload

简要描述

  • 将数据库从内存中卸载(所有的更改都会刷回硬盘)

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为unload
db_namestring数据库名称(不需要.db)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Unload database done."
}

(4) drop

简要描述

  • 将数据库删除

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为drop
db_namestring数据库名称(不需要.db)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Drop database done."
}

(5)show

简要描述

  • 显示所有数据库列表

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为show

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
ResponseBodyJSONArrayJSON数组(每个都是一个数据库信息)
-------- databasestring数据库名称
---------statusstring数据库状态

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "success",
    "ResponseBody": [
           "lubm": "loaded",
           "lubm10K": "unloaded"
    ]
}

(6)query

简要描述

  • 对数据库进行查询

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为query
db_namestring需要操作的数据库
formatstring结果集返回格式,默认是json
sparqlstring要执行的sparql语句

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息
headJSON头部信息
resultsJSON结果信息(详情请见返回示例)

返回示例

{
    "head": {
        "link": [],
        "vars": [
            "x"
        ]
    },
    "results": {
        "bindings": [
            {
                "x": {
                    "type": "uri",
                    "value": "十面埋伏"
                }
            },
            {
                "x": {
                    "type": "uri",
                    "value": "投名状"
                }
            },
            {
                "x": {
                    "type": "uri",
                    "value": "如花"
                }
            }
        ]
    },
    "StatusCode": 0,
    "StatusMsg": "success"
}

(7) login

简要描述

  • 登陆用户(验证用户名和密码)

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为login
usernamestring用户名
passwordstring密码(明文)

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 1001,
    "StatusMsg": "wrong password."
}

(8)stop

简要描述

  • 关闭服务端

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为stop

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Server stopped."
}

(9) close

简要描述

  • 关闭与客户端的连接

请求ip

  • 127.0.0.1

请求端口号

  • 9000

参数传递方式

  • JSON结构传递

参数

参数名必选类型说明
opstring操作名称,固定值为close

返回值

参数名类型说明
StatusCodeint返回值代码值(具体请参考附表:返回值代码表)
StatusMsgstring返回具体信息

返回示例

{
    "StatusCode": 0,
    "StatusMsg": "Connection disconnected."
}

附表1 返回值代码表

代码值涵义
0Success
1000The method type is not support
1001Authentication Failed
1002Check Privilege Failed
1003Param is illegal
1004The operation conditions are not satisfied
1005Operation failed
1006Add privilege Failed
1007Loss of lock
1008Transcation manage Failed
1100The operation is not defined
1101IP Blocked

C++ HTTP API

要使用C++ API,请将该短语#include "client.h"放在cpp代码中,具体使用如下:

构造初始化函数

GstoreConnector(std::string serverIP,int serverPort, std::string httpType, std::string username, std::string password);
功能:初始化   
参数含义:[服务器IP],[服务器上http端口],[http服务类型], [用户名],[密码]
使用示例:GstoreConnector gc("127.0.0.1", 9000, "ghttp", "root", "123456");

构建数据库:build

std::string build(std::string db_name, std::string rdf_file_path, std::string request_type);
功能:通过RDF文件新建一个数据库
参数含义:[数据库名称],[.nt文件路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.build("lubm", "data/lubm/lubm.nt");

加载数据库:load

std::string load(std::string db_name, std::string request_type);
功能:加载你建立的数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.load("lubm");

停止加载数据库:unload

std::string unload(std::string db_name, std::string request_type);
功能:停止加载数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.unload("lubm");

用户管理:user

std::string user(std::string type, std::string username2, std::string addition, std::string request_type);
功能:添加、删除用户或修改用户的权限,必须由根用户执行操作
1.添加、删除用户:
参数含义:["add_user"添加用户,"delete_user"删除用户],[用户名],[密码],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.user("add_user", "user1", "111111");
2.修改用户的权限:
参数含义:["add_query"添加查询权限,"delete_query"删除查询权限,"add_load"添加加载权限,"delete_load"删除加载权限,"add_unload"添加不加载权限,"delete_unload"删除不加载权限,"add_update"添加更新权限,"delete_update"删除更新权限,"add_backup"添加备份权限,"delete_bakup"删除备份权限,"add_restore"添加还原权限,"delete_restore"删除还原权限,"add_export"添加导出权限,"delete_export"删除导出权限],[用户名],[数据库名],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.user("add_query", "user1", "lubm");

显示用户:showUser

std::string showUser(std::string request_type);
功能:显示所有用户
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.showUser();

数据库查询:query

std::string query(std::string db_name, std::string format, std::string sparql, std::string request_type);
功能:查询数据库
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
std::string res = gc.query("lubm", "json", sparql);
std::cout << res << std::endl;  //输出结果

删除数据库:drop

std::string drop(std::string db_name, bool is_backup, std::string request_type);
功能:直接删除数据库或删除数据库同时留下备份
参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.drop("lubm", false);  //直接删除数据库不留下备份

监控数据库:monitor

std::string monitor(std::string db_name, std::string request_type);
功能:显示特定数据库的信息
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.monitor("lubm");

保存数据库:checkpoint

std::string checkpoint(std::string db_name, std::string request_type);
功能:如果更改了数据库,保存数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.checkpoint("lubm");

展示数据库:show

std::string show(std::string request_type);
功能:显示所有已创建的数据库
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.show();

显示内核版本信息:getCoreVersion

std::string getCoreVersion(std::string request_type);
功能:得到内核版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.getCoreVersion();

显示API版本信息:getAPIVersion

std::string getAPIVersion(std::string request_type);
功能:得到API版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.getAPIVersion();

查询数据库并保存文件:fquery

void fquery(std::string db_name, std::string format, std::string sparql, std::string filename, std::string request_type);
功能:查询数据库并保留结果到文件
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[文件名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.fquery("lubm", "json", sparql, "ans.txt");

导出数据库

std::string exportDB(std::string db_name, std::string dir_path, std::string request_type);
功能:导出数据库到文件夹下
参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.exportDB("lubm", "/root/gStore/");

Java HTTP API

要使用Java API,请参阅gStore/api/http/java/src/jgsc/GstoreConnector.java。具体使用如下:

构造初始化函数

public class GstoreConnector(String serverIP, int serverPort, String httpType, String username, String password);
功能:初始化   
参数含义:[服务器IP],[服务器上http端口],[http服务类型],[用户名],[密码]
使用示例:GstoreConnector gc = new GstoreConnector("127.0.0.1", 9000, "ghttp", "root", "123456");

构建数据库:build

public String build(String db_name, String rdf_file_path, String request_type);
功能:通过RDF文件新建一个数据库
参数含义:[数据库名称],[.nt文件路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.build("lubm", "data/lubm/lubm.nt");

加载数据库:load

public String load(String db_name, String request_type);
功能:加载你建立的数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.load("lubm");

停止加载数据库:unload

public String unload(String db_name, String request_type);
功能:停止加载数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.unload("lubm");

用户管理:user

public String user(String type, String username2, String addition, String request_type);
功能:添加、删除用户或修改用户的权限,必须由根用户执行操作
1.添加、删除用户:
参数含义:["add_user"添加用户,"delete_user"删除用户],[用户名],[密码],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.user("add_user", "user1", "111111");
2.修改用户的权限:
参数含义:["add_query"添加查询权限,"delete_query"删除查询权限,"add_load"添加加载权限,"delete_load"删除加载权限,"add_unload"添加不加载权限,"delete_unload"删除不加载权限,"add_update"添加更新权限,"delete_update"删除更新权限,"add_backup"添加备份权限,"delete_bakup"删除备份权限,"add_restore"添加还原权限,"delete_restore"删除还原权限,"add_export"添加导出权限,"delete_export"删除导出权限],[用户名],[数据库名],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.user("add_query", "user1", "lubm");

显示用户:showUser

public String showUser(String request_type);
功能:显示所有用户
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.showUser();

数据库查询:query

public String query(String db_name, String format, String sparql, String request_type);
功能:查询数据库
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
String res = gc.query("lubm", "json", sparql);
System.out.println(res); //输出结果

删除数据库:drop

public String drop(String db_name, boolean is_backup, String request_type);
功能:直接删除数据库或删除数据库同时留下备份
参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.drop("lubm", false);  //直接删除数据库不留下备份

监控数据库:monitor

public String monitor(String db_name, String request_type);
功能:显示特定数据库的信息
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.monitor("lubm");

保存数据库:checkpoint

public String checkpoint(String db_name, String request_type);
功能:如果更改了数据库,保存数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.checkpoint("lubm");

展示数据库:show

public String show(String request_type);
功能:显示所有已创建的数据库
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.show();

显示内核版本信息:getCoreVersion

public String getCoreVersion(String request_type);
功能:得到内核版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.getCoreVersion();

显示API版本信息:getAPIVersion

public String getAPIVersion(String request_type);
功能:得到API版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.getAPIVersion();

查询数据库并保存文件:fquery

public void fquery(String db_name, String format, String sparql, String filename, String request_type);
功能:查询数据库并保留结果到文件
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[文件名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.fquery("lubm", "json", sparql, "ans.txt");

导出数据库

public String exportDB(String db_name, String dir_path, String request_type);
功能:导出数据库到文件夹下
参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.exportDB("lubm", "/root/gStore/");

Python HTTP API

要使用Python API,请参阅gStore/api/http/python/src/GstoreConnector.py。具体使用如下:

构造初始化函数

def __init__(self, ip, port, username, password, http_type='ghttp'):
功能:初始化   
参数含义:[服务器IP],[服务器上http端口],[用户名],[密码],[http服务类型,默认为ghttp]
使用示例:gc = GstoreConnector.GstoreConnector("127.0.0.1", 9000, "root", "123456")

心跳检测: check

 def check(self, request_type='GET'):
 功能:检测http服务是否在线
 参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
 使用示例:res = gc.check()

登录授权: login

def login(self, username, password, request_type='GET'):
功能: 登录HTTP API服务。如果在调用其他API接口时提示"the ip has been locked",可通过login接口登录成功后解除IP锁定
Parameter definition:[username],[password],[Request types "GET" and "POST" can be omitted if the request type is "GET"]
Example: res = gc.login("root","123456")

构建数据库:build

def build(self, db_name, db_path, request_type='GET'):
功能:通过RDF文件新建一个数据库
参数含义:[数据库名称],[RDF文件路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.build("lubm", "data/lubm/lubm.nt")

删除数据库:drop

def drop(self, db_name, is_backup, request_type='GET'):
功能:直接删除数据库或删除数据库同时留下备份
参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.drop("lubm", false)

加载数据库:load

def load(self, db_name, csr='0', request_type='GET'):
功能:加载已构建的数据库
参数含义:[数据库名称],[是否记载CSR资源,默认不加载],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.load("lubm")

卸载数据库:unload

def unload(self, db_name, request_type='GET'):
功能:将数据库从内存中卸载(所有的更改都会刷回硬盘)
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.unload("lubm")

展示数据库:show

def show(self, request_type='GET'):
功能:显示所有已创建的数据库
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.show()

监控数据库:monitor

def monitor(self, db_name, request_type='GET'):
功能:显示特定数据库的信息
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.monitor("lubm")

数据库查询:query

def query(self, db_name, format, sparql, request_type='GET'):
功能:查询数据库
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
sparql = "select ?x ?p where { ?x ?p <FullProfessor0>. }"
res = gc.query("lubm", "json", sparql)
print(res)

显示用户:showUser

def showuser(self, request_type='GET'):
功能:显示所有用户
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.showUser()

用户管理:usermanage

def usermanage(self, type, op_username, op_password, equest_type='GET'):
功能:添加、删除用户或修改用户的密码,必须由根用户执行操作
1.添加、删除用户:
参数含义:["1"添加用户, "2"删除用户, "3"修改密码],[用户名], [密码], [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.user("1", "test", "123456")

修改用户权限:userprivilegemanage

def userprivilegemanage(self, type, op_username, privileges, db_name, request_type='GET'):
功能:修改用户的权限
参数含义:["1" 新增权限, "2" 删除权限, "3" 清空权限], [用户名], ["1" 查询, "2" 加载, "3" 卸载, "4" 更新, "5" 备份, "6" 还原,  "7" 导出],  [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
给用户test添加lubm库的所有权限
res = gc.userprivilegemanage("1", "test", "1,2,3,4,5,6,7", "lubm")
删除用户test对lubm库的"备份"和"还原"权限
res = gc.userprivilegemanage("2", "test", "5,7", "lubm")
清空用户test的所有权限 
res = gc.userprivilegemanage("3", "test", "", "")

获取内核版本信息:getCoreVersion

def getCoreVersion(self, request_type='GET'):
功能:得到内核版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.getCoreVersion()

开启事务: begin

def begin(self, db_name, isolevel, request_type='GET'):
功能:开启事务,将返回事务id用于后续的事务操作
参数含义:[数据库名称], ["1" seriablizable "2" snapshot isolation "3" read committed], [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.begin("lubm", "1")

执行事务查询:fquery

def tquery(self, db_name, tid, sparql, request_type='GET'):
功能:执行事务类型的查询
参数含义:[数据库名称],[事务id],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.fquery("lubm", "1", sparql)

提交事务: commit

def commit(self, db_name, tid, request_type='GET'):
功能:提交事务 
参数含义:[数据库名称],[事务id], [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.commit("lubm", "1")

回滚事务: rollback

def rollback(self, db_name, tid, request_type='GET'):
功能:回滚事务
参数含义:[数据库名称],[事务id], [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.rollback("lubm", "1")

获取事务日志: getTransLog

def getTransLog(self, page_no=1, page_size=10, request_type='GET'):
功能:获取事务日志信息
参数含义:[数据库名称], [页数], [每页条数], [请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.getTransLog(1, 10)

保存数据库:checkpoint

def checkpoint(self, db_name, request_type='GET'):
功能:将数据刷回到硬盘,一般在执行事务相关操作后调用
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.checkpoint("lubm")

导出数据库:exportDB

def exportDB(self, db_name, db_path, request_type='GET'):
功能:导出数据库到文件夹下
参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.exportDB("lubm", "/root/gStore/")

Nodejs HTTP API

在使用Nodejs API之前,键入npm install requestnpm install request-promise在nodejs文件夹下添加所需的模块。

要使用Nodejs API,请参阅gStore/api/http/nodejs/GstoreConnector.js。具体使用如下:

构造初始化函数

class GstoreConnector(ip = '', port, httpType = 'ghttp', username = '', password = '');
功能:初始化   
参数含义:[服务器IP],[服务器上http端口],[http服务类型],[用户名],[密码]
使用示例:gc =  new GstoreConnector("127.0.0.1", 9000, "ghttp", "root", "123456");

构建数据库:build

async build(db_name = '', rdf_file_path = '', request_type);
功能:通过RDF文件新建一个数据库
参数含义:[数据库名称],[.nt文件路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.build("lubm", "data/lubm/lubm.nt");

加载数据库:load

async load(db_name = '', request_type);
功能:加载你建立的数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.load("lubm");

停止加载数据库:unload

async unload(db_name = '', request_type);
功能:停止加载数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.unload("lubm");

用户管理:user

async user(type = '', username2 = '' , addition = '' , request_type);
功能:添加、删除用户或修改用户的权限,必须由根用户执行操作
1.添加、删除用户:
参数含义:["add_user"添加用户,"delete_user"删除用户],[用户名],[密码],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.user("add_user", "user1", "111111");
2.修改用户的权限:
参数含义:["add_query"添加查询权限,"delete_query"删除查询权限,"add_load"添加加载权限,"delete_load"删除加载权限,"add_unload"添加不加载权限,"delete_unload"删除不加载权限,"add_update"添加更新权限,"delete_update"删除更新权限,"add_backup"添加备份权限,"delete_bakup"删除备份权限,"add_restore"添加还原权限,"delete_restore"删除还原权限,"add_export"添加导出权限,"delete_export"删除导出权限],[用户名],[数据库名],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.user("add_query", "user1", "lubm");

显示用户:showUser

async showUser(request_type);
功能:显示所有用户
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.showUser();

数据库查询:query

async query(db_name = '', format = '' , sparql = '' , request_type);
功能:查询数据库
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
res = gc.query("lubm", "json", sparql);
console.log(JSON.stringify(res,",")); //输出结果

删除数据库:drop

async drop(db_name = '', is_backup , request_type);
功能:直接删除数据库或删除数据库同时留下备份
参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.drop("lubm", false);  //直接删除数据库不留下备份

监控数据库:monitor

async monitor(db_name = '', request_type);
功能:显示特定数据库的信息
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.monitor("lubm");

保存数据库:checkpoint

async checkpoint(db_name = '', request_type);
功能:如果更改了数据库,保存数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.checkpoint("lubm");

展示数据库:show

async show(request_type);
功能:显示所有已创建的数据库
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.show();

显示内核版本信息:getCoreVersion

async getCoreVersion(request_type);
功能:得到内核版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.getCoreVersion();

显示API版本信息:getAPIVersion

async getAPIVersion(request_type);
功能:得到API版本信息	
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.getAPIVersion();

查询数据库并保存文件:fquery

async fquery(db_name = '', format = '' , sparql = '' , filename = '' , request_type);
功能:查询数据库并保留结果到文件
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[文件名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:gc.fquery("lubm", "json", sparql, "ans.txt");

导出数据库

async exportDB(db_name = '' , dir_path = '' , request_type); 
功能:导出数据库到文件夹下
参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:res = gc.exportDB("lubm", "/root/gStore/");

PHP HTTP API

要使用Php API,请参阅gStore/api/http/php/src/GstoreConnector.php。具体使用如下:

构造初始化函数

class GstoreConnector($ip, $port, $httpType, $username, $password)
功能:初始化   
参数含义:[服务器IP],[服务器上http端口],[http服务类型],[用户名],[密码]
使用示例:$gc = new GstoreConnector("127.0.0.1", 9000, "ghttp", "root", "123456");

构建数据库:build

function build($db_name, $rdf_file_path, $request_type)
功能:通过RDF文件新建一个数据库
参数含义:[数据库名称],[.nt文件路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->build("lubm", "data/lubm/lubm.nt");
echo $res . PHP_EOL;

加载数据库:load

function load($db_name, $request_type)
功能:加载你建立的数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$ret = $gc->load("test");
echo $ret . PHP_EOL;

停止加载数据库:unload

function unload($db_name, $request_type)
功能:停止加载数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$ret = $gc->unload("test");
echo $ret . PHP_EOL;

用户管理:user

function user($type, $username2, $addition, $request_type)
功能:添加、删除用户或修改用户的权限,必须由根用户执行操作
1.添加、删除用户:
参数含义:["add_user"添加用户,"delete_user"删除用户],[用户名],[密码],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->user("add_user", "user1", "111111");
echo $res . PHP_EOL;
2.修改用户的权限:
参数含义:["add_query"添加查询权限,"delete_query"删除查询权限,"add_load"添加加载权限,"delete_load"删除加载权限,"add_unload"添加不加载权限,"delete_unload"删除不加载权限,"add_update"添加更新权限,"delete_update"删除更新权限,"add_backup"添加备份权限,"delete_bakup"删除备份权限,"add_restore"添加还原权限,"delete_restore"删除还原权限,"add_export"添加导出权限,"delete_export"删除导出权限],[用户名],[数据库名],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->user("add_user", "user1", "lubm");
echo $res . PHP_EOL;

显示用户:showUser

function showUser($request_type)
功能:显示所有用户
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->showUser();
echo $res. PHP_EOL;

数据库查询:query

function query($db_name, $format, $sparql, $request_type)
功能:查询数据
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->query("lubm", "json", $sparql);
echo $res. PHP_EOL; //输出结果

删除数据库:drop

function drop($db_name, $is_backup, $request_type)
功能:直接删除数据库或删除数据库同时留下备份
参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->drop("lubm", false); //直接删除数据库不留下备份
echo $res. PHP_EOL;             

监控数据库:monitor

function monitor($db_name, $request_type)
功能:显示特定数据库的信息
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$res = $gc->monitor("lubm");echo $res. PHP_EOL;

保存数据库:checkpoint

function checkpoint($db_name, $request_type)
功能:如果更改了数据库,保存数据库
参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$res = $gc->checkpoint("lubm");echo $res. PHP_EOL;

展示数据库:show

function show($request_type)
功能:显示所有已创建的数据库
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$res = $gc->show();echo $res. PHP_EOL;

显示内核版本信息:getCoreVersion

function getCoreVersion($request_type)
功能:得到内核版本信息
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$res = $gc->getCoreVersion();echo $res. PHP_EOL;

显示API版本信息:getAPIVersion

function getAPIVersion($request_type)
功能:得到API版本信息	
参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:
$res = $gc->getAPIVersion();
echo $res. PHP_EOL;

查询数据库并保存文件:fquery

function fquery($db_name, $format, $sparql, $filename, $request_type)
功能:查询数据库并保留结果到文件
参数含义:[数据库名称],[查询结果类型json,html或text],[sparql语句],[文件名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$gc->fquery("lubm", "json", $sparql, "ans.txt");

导出数据库

function exportDB($db_name, $dir_path, $request_type)
功能:导出数据库到文件夹下
参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]
使用示例:$res = $gc->exportDB("lubm", "/root/gStore/");