#gStore-weekly | gStore常用API接口

2022-06-01 00:00:00 数据库 示例 请求 类型 省略

gStore提供了HTTP API和socket API ,分别对应ghttp和gserver。其中socket API目前暂停维护。而且HTTP API和socket API 相比,更稳定且能保持连接,也更规范。今天就来讲讲ghttp的使用方法。

1. ghttp简介

ghttp通过http服务向用户提供API服务ghttp组件提供c++、java、python、php和nodejs API。请参考源码文件的api/http/cpp、api/http/java、api/http/python、api/http/php和api/http/nodejs中的示例代码。我们用java API进行接口介绍,其中一共有13个接口。

2. 开启ghttp服务
我们需要指定一个端口,并打开这个端口,。从浏览器访问特定的URL, gStore 就能执行相应的操作。

输入如下命令打开ghttp:

bin/ghttp db_name serverPort

或者 bin/ghttp serverPort db_name

参数含义:db_name:以“.db”结尾的数据库名称,serverPort:http服务监听端口,该端口需要手动指定,且需保证该端口不会被服务器防火墙禁止。

Tips

参数 serverPort 或 db_name 可以省略。如果省略了 serverPort,其值会被默认设置为 9000 。如果省略了 db_name,服务会以没有 load 数据库的形式启动。

在开启ghttp服务后,可以通过浏览器访问:http://serverip:port/。其中serverip为gstore服务器所在的ip地址,port为ghttp启动的端口。

3. 关闭ghttp服务
gStore HTTP访问端口可以停止gStore的ghttp服务。关闭命令如下:

bin/shutdown serverPort

Tips

不要试图通过 Ctrl+C 来停止 ghttp ,这会导致数据库的变更丢失。

4. 常用接口
Java API主要对外接口在gStore/api/http/java/src/jgsc/GstoreConnector.java下,主要函数如下:

l 构造初始化函数:GstoreConnector

函数声明:public class GstoreConnector(String serverIP, int serverPort, String username, String password);

功能:初始化

参数含义:[服务器IP],[服务器上ghttp端口],[用户名],[密码]

使用示例:GstoreConnector gc = new GstoreConnector("127.0.0.1", 9000, "root", "123456");

l 构建数据库: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");

l 加载数据库:load

函数声明:public String load(String db_name, String request_type);

功能:加载你建立的数据库

参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.load("lubm");

l 停止加载数据库:unload

函数声明:public String unload(String db_name, String request_type);

功能:停止加载数据库

参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.unload("lubm");

l 用户管理:user

函数声明:public String user(String type, String username2, String addition, String request_type);

功能:添加、删除用户或修改用户的权限,必须由根用户执行操作

参数含义:["add_user"添加用户,"delete_user"删除用户,"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_user", "user1", "111111"); //添加用户名为“user1”,密码为“111111”的用户。

gc.user("add_query", "user1", "lubm");//添加数据库“lubm”里用户名为“user1”查询权限。

l 显示用户:showUser

函数声明:public String showUser(String request_type);

功能:显示所有用户

参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.showUser();

l 数据库查询: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);

l 删除数据库:drop

函数声明:public String drop(String db_name, boolean is_backup, String request_type);

功能:直接删除数据库或删除数据库同时留下备份

参数含义:[数据库名称],[false不备份,true备份],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.drop("lubm", false); //不备份删除数据库“lubm”

l 监控数据库:monitor

函数声明:public String monitor(String db_name, String request_type);

功能:显示特定数据库的信息

参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.monitor("lubm");//含义是监控“lubm”数据库,并显示特定信息。

l 保存数据库:checkpoint

函数声明:public String checkpoint(String db_name, String request_type);

功能:如果更改了数据库,保存数据库

参数含义:[数据库名称],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.checkpoint("lubm");

l 展示数据库:show

函数声明:public String show(String request_type);

功能:显示所有已创建的数据库

参数含义:[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.show();

l 查询数据库并保存文件: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");

l 导出数据库:exportDB

函数声明:public String exportDB(String db_name, String dir_path, String request_type);

功能:导出数据库到文件夹下

参数含义:[数据库名称],[数据库导出的文件夹路径],[请求类型"GET"和"post",如果请求类型为“GET”,则可以省略]

使用示例:gc.exportDB("lubm", "/root/gStore/");

以上是gStore常用java API,感兴趣的朋友,可以启动API服务,并尝试连接它,其他编程语言的API调用大同小异,具体可查看对应gStore/api/http/下的对应文件。
————————————————
版权声明:本文为CSDN博主「PKUMOD」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48167662/article/details/119774469

相关文章