#gStore-weekly | gStore常用API接口

图片

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/cppapi/http/javaapi/http/pythonapi/http/phpapi/http/nodejs中的示例代码。我们用java API进行接口介绍,其中一共有13个接口。

2.     开启ghttp服务

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

输入如下命令打开ghttp:

bin/ghttp db_name serverPort 

或者 bin/ghttp serverPort db_name

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

    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");

停止加载数据库: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);

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

参数含义:["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/下的对应文件。

针对gStore有任何问题也可通过加运营小哥哥微信,邀请加入gStore图谱社区咨询。

图片

诚邀大家参加

·gStore-weekly技术文章征集活动·

  相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。

  入选周刊即送精美礼品~

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值