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
#gStore-weekly | gStore常用API接口
分享好友
分享这个小栈给你的朋友们,一起进步吧。
订阅须知
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)
技术专家
查看更多- 飘絮絮絮丶专家