TuGraph-Restful-Server

TuGraph Restful Server 强依赖 TuGraph,Restful Server 与 Tugraph 共存

1.TuGraph-Restful-Server 简介

TuGraph Restful Server 使用brpc框架支持的http协议,提供restful接口查询功能,在实现中,restful server 与rpc server 使用同一个端口。目前restful接口提供文件上传,数据导入,导入进度查询,cypher查询,文件删除等功能

2.启动 TuGraph-Restful-Server

需要在启动Tugraph时设置enable_rpc参数为true的方式,正常启动TuGraph

3.连接 TuGraph-Restful-Server

TuGraph正常启动后,Restful Server 将监听在rpc_port上, 通过访问 http://\({ip}:\){rpc_port}/LGraphHttpService/Query/ url可以链接到TuGraph

4.数据格式

客户端与服务端数据交互的格式是 JSON。在发送请求时,请将发送数据的请求的报头设置为 Accept:application/json, Content-Type:application/json。 例如在创建一个点时,请求报头包含以下内容:

    Accept: application/json; charset=UTF-8
    Content-Type: application/json
    server_version: 12

5.返回值

通用返回格式

body参数

参数说明

参数类型

是否必填

errorCode

状态码

字符串

errorMessage

错误信息

字符串

data

返回的数据

字符串

TuGraph 返回的 HTTP 状态码包含以下四种:

  • 200 OK: 操作成功

  • 400 Bad Request: 输入有误,例如 URI 错误,或者请求中的 JSON 参数错误

  • 401 Unauthorized: 未通过鉴权认证,例如用户名密码错误,token超过有效期等

  • 500 Internal Server Error: 服务器端错误 当操作成功时,返回的 data 中包含操作的返回值。 当发生输入错误或者服务器错误时,返回的 errorMessage 中包含错误提示。

6.URI格式

URI

说明

/cypher

执行cypher查询请求

/refresh

刷新token请求

/login

用户登陆请求

/logout

用户登出请求

/upload_files

上传文件请求

/clear_cache

清理用户上传文件请求

/check_file

文件认证请求

/import_data

数据导入请求

/import_progress

导入进度查询请求

/import_schema

批量创建schema请求

7.接口

7.1 用户登陆

用于用户第一次与服务端通信时的鉴权操作,请求报文在 http body 中携带用户名和密码,响应报文在 http body 中会返回一个带有有效期的token,后续请求中需要在http header中携带该token作为凭证

7.1.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/login

7.1.2 REQUEST

body参数

参数说明

参数类型

是否必填

userName

用户名

字符串

password

密码

字符串

7.1.3 RESPONSE

body参数

参数说明

参数类型

是否必填

authorization

token

字符串

7.2 刷新token

token到期后将无法使用此token与服务端正常通信,需要获取新的token作为后续请求的凭证,请求报文在http header中携带旧的token,响应报文在http body中返回新的token

7.2.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/refresh

7.2.2 REQUEST

header参数

参数说明

参数类型

是否必填

Authorization

旧的token

字符串

7.2.3 RESPONSE

body参数

参数说明

参数类型

是否必填

authorization

新的token

字符串

7.3 用户登出

用户不再需要与服务端进行通信时,需要请求登出接口,释放自己的token。请求报文在http header中携带旧的token,如果拿到返回errorCode为200的响应报文即为正常登出

7.3.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/logout

7.3.2 REQUEST

header参数

参数说明

参数类型

是否必填

Authorization

旧的token

字符串

7.4 执行cypher查询请求

用户通过此类请求发cypher给server端执行并获取执行结果,请求报文在http body 中将执行的cypher语句和目标子图发送给server,server执行完成后在响应报文的http body中返回执行结果

7.4.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/cypher

7.4.2 REQUEST

body参数

参数说明

参数类型

是否必填

graph

查询目标子图

字符串

script

cypher查询语句

字符串

7.4.3 RESPONSE

body参数

参数说明

参数类型

是否必填

result

返回结果

字符串

7.5 上传文件请求

用户通过此类请求向server发送文件,可以对文件进行分片,分片大小不大于1MB,支持多线程乱序发送,请求报文在http header 中包含文件名,第一字节内容在文件中的偏移和分片大小,在body中包含文件内容,server收到请求后将验证分片大小是否与分片内容一致,一致时将文件分段写入文件。不一致时将返回errorCode为400的响应

7.5.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/upload_files

7.5.2 REQUEST

header参数

参数说明

参数类型

是否必填

File-Name

文件名

字符串

Begin-Pos

开始位置在文件内的偏移

字符串

Size

文件分片大小

字符串

body参数

参数说明

参数类型

是否必填

-

文件内容

字符串

7.6 文件认证请求

用户通过此类请求验证发送到server端的文件是否与期望一致,server端使用两种验证方式,md5值和文件长度,目前已支持文件长度验证。

7.6.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/check_file

7.6.2 REQUEST

body参数

参数说明

参数类型

是否必填

fileName

文件名

字符串

checkSum

文件对应md5值

字符串

fileSize

文件长度(以字节计算)

字符串

flag

标记位,为1时校验md5值,为2时校验文件长度

字符串

7.6.3 RESPONSE

body参数

参数说明

参数类型

是否必填

pass

检查成功为true,否则为false

bool

7.7 批量创建schema请求

用户通过此类请求批量创建schema,请求报文在http body 中将创建schema的目标子图和schema信息发送给server,如果拿到返回errorCode为200的响应报文即为正常创建

7.7.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/import_schema

7.7.2 REQUEST

body参数

参数说明

参数类型

是否必填

graph

创建目标子图

字符串

schema

schema描述信息

字符串

7.8 数据导入请求

用户通过此类请求导入已经上传的数据文件。导入不论成功或失败,都将删除已上传文件。数据导入请求在server中实现为一个异步任务,响应返回并不意味着导入已完成,返回的是任务id,后续可以通过此任务id查询导入进度

7.8.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/import_data

7.8.2 REQUEST

body参数

参数说明

参数类型

是否必填

graph

导入目标子图

字符串

schema

导入schema描述

json字符串

delimiter

分隔符

字符串

continueOnError

单行数据出错是否跳过错误并继续

boolean

skipPackages

跳过的包个数

字符串

taskId

任务id

字符串

other

其他参数

json字符串

7.8.3 RESPONSE

body参数

参数说明

参数类型

是否必填

taskId

任务编号

字符串

7.9 清理用户上传文件请求

用户通过此类请求清理已经上传的文件,如果拿到返回errorCode为200的响应报文即为正常清理

7.9.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/clear_cache

7.9.2 REQUEST

body参数

参数说明

参数类型

是否必填

fileName

文件名称

字符串

userName

用户名称

字符串

flag

标记位, flag = 0时删除fileName指定文件, flag = 1时删除userName指定用户已经上传的所有文件, flag = 2时删除所有用户上传的文件

字符串

7.10. 导入进度查询请求

用户通过此类请求获得导入任务的状态

7.10.1 URL

http://\({ip}:\){rpc_port}/LGraphHttpService/Query/import_progress

7.10.2 REQUEST

body参数

参数说明

参数类型

是否必填

taskId

任务编号

字符串

7.10.3 RESPONSE

body参数

参数说明

参数类型

是否必填

state

状态标记,为0表示准备导入,为1表示导入中,为2表示导入成功,为3表示导入失败

字符串

progress

导入进度,state为1时包含

字符串

reason

失败原因,state为3时包含

字符串