1.1. checkpoint接口调用
使用sparql 执行insert data或者 delete data语句;
调用batchInsert接口;
调用batchRemove接口。
1.2. monitor接口
{"StatusCode": 0,"StatusMsg": "success","database": "LDBC(勿删)","creator": "root","built_time": "2022-03-17 16:56:56","triple num": "4028511","entity num": 586530,"literal num": 1093420,"subject num": 312150,"predicate num": 40,"connection num": 0}
1.3. load接口
若命令行启动ghttp服务的时候,没有指定数据库,可以在调用load接口的参数进行指定使用某个数据库,来实现多个数据库之间的切换; 执行gquery、batchInsert、batchRemove等需要查询数据或者更新数据的接口时,如果执行的数据库没有提前加载到内存中会报错:
{"StatusCode": 1005,"StatusMsg": "Database not load yet."}
接口要使用事务或者使用高级函数时,load接口里面要设置参数load_csr=true,否则无法使用事务或高级函数,如果数据库已经load到数据库中,则需要限执行unload接口,在执行load接口传入参数load_csr=true,接口参数如下:

1.4. 关闭ghttp服务
1.5. 调用ghttp接口
1.6. 事务操作
首先需要启动事务,即调用begin接口。该接口返回了一个重要的值TID(事务ID),该参数会在后续的tquery接口和commit接口中都会使用到;

begin接口调用成功后,再进行您的事务操作,但是执行的时候是使用tquery接口,执行tquery接口的时候就需要传入第一步begin接口返回的TID值。而且这里要注意不是调用query接口,而是tquery 接口;

如果要提交事务,则调用commit接口进行事务提交,同样执行该接口也需要传入第一步begin接口返回的TID值
commit接口传入参数

如果多次执行begin和tquery接口,但是都没有执行commit接口,那么gStore只保留最后一次事务操作不提交,然后将之前所有的事务操作都进行了自动回滚; 如果要回滚事务,则调用rollback接口,同样执行该接口也需要传入第一步begin接口返回的TID值。
rollback接口传入参数

1.7. backup接口
备份接口需要注意以下情况:
调用接口传入参数backup_path如果为空,则会默认备份到gStore根目录下的backups目录; backup_path参数可以传入相对路径,相对路径的根目录为gStore的安装目录; backup_path也可以传入绝对路径; 备份成功后会返回一个backupfilepath参数,该参数为数据库的备份文件路径,需要用户记录下来以作为后续调用restore还原接口时的传入参数。


1.8. export接口
0.8版本export导出数据库接口的参数路径字段为 ds_path,但是0.9.1版本路径字段为 db_path;
导出路径可以是相对路径,相对路径的根目录是gStore的安装目录;
导出路径也可以是绝对路径。
export接口0.8版本参数

export接口0.9.1版本参数

1.9. drop接口
调用drop接口删除数据库时,参数is_backup传入true代表逻辑删除,传入false代表物理删除(默认为true即逻辑删除)
如果是逻辑删除,将那么会在gStore的根目录下将原来“数据库名称.db”的文件夹变为“数据库名称.bak”文件夹。如果想要还原该数据库,则可以通过修改文件夹名为原来的 “数据库名称.db”,然后调用bin/ginit -db 数据库名的方式其还原。
1.10. query接口
sparql 检查是否有中文的逗号、中文的空格、可能会导致load数据库失败、从而导致查询失败;
sparql主语和谓语的内容中间不能有空格或换行;
sparql语句主谓宾语的内容中尽量不要使用特殊字符,尤其是不要包含“<”,“>”特殊符号,可能会导致查询失败;
主语、谓语和宾语之间要加上英文的空格,在一个三元组或者语句结果的地方要加上“.”符号。
使用ghttp的query接口执行insert data 和 delete data语句发起新增三元组和删除三元组,要严格满足三元组的格式要求(即主谓宾语之间要有空格,每一个三元组的结尾以"."结尾,每一个三元组单 独一行),否则可能导致数据错乱,数据插入成功无法查询的情况,最后只能通过重新构建数据库来解 决数据错乱的问题。
sparql示例:insert data {<Alice> <国籍> "美国" .}delete data {<Alice> <国籍> "美国" .
1.11. batchInsert和batchRemove接口
batchInsert和batchRemove接口都需要传入file参数,该参数可以传入文件的相对路径(示例:./test.nt),相对路径为gStore的安装路径;
batchInsert和batchRemove接口也可以传入nt文件的绝对路径;
nt文件要严格满足三元组的格式要求(即主谓宾语之间要有空格,每一个三元组的结尾以"."结尾,每一个三元组单独一行);
nt文件示例:
<Alice> <关注> <Bob>.<Bob> <关注> <Alice>.<Carol> <关注> <Bob>.<Dave> <关注> <Alice>.<Dave> <关注> <Eve>.
1.12. gShow接口
0.8版本gShow接口返回的ResponseBody中会有system数据库,但是0.9.1版本则不返回 system数据库
1.13. ipmanage黑白名单接口
gStore安装后,默认启用的是黑名单策略
如果想要修改黑白名单策略,则需要进入到gStore的安装根目录,修改“conf.ini”文件
ip_deny_path为黑名单配置项
ip_allow_path为白名单配置项
取消策略只需要在当前行前面最前面加上“#”,修改之后需要重启ghttp服务,否则没有生效
黑白名单不能同时生效,如果同时配置了,gStore会以白名单策略优先
如果都没有配置,系统就表示没有黑白名单策略以下为conf.ini文件的内容
thread_num=30max_database_num=100max_user_num=1000root_username="root"root_password="123456"system_path="data/system/system.nt"max_querylog_size=80000000querylog_path="logs/endpoint/"system_username="system"max_output_size=10000000 db_path="."backup_path="./backups"#白名单ip_allow_path=""#黑名单ip_deny_path="ipDeny.config"ip_access_log="logs/iplog/"save_log=0 [system]version=0.9.1licensetype=test[gserver]default_port=9000[backup]auto_backup=1max_backups=4system_path="data/system/system.nt"max_querylog_size=80000000querylog_path="logs/endpoint/"system_username="system"max_output_size=10000000db_path="."backup_path="./backups"
1.14. usermanage用户管理接口
使用usermanage接口新增用户的时候,传入参数op_username尽量不用使用怪异的特殊字符(可以使用的特殊字符“# @ !$&_”),否则会导致所有的用户权限。






