RESTful API
此文档主要介绍 TuGrpah 的 Rest API 的调用详情。
1.简介
TuGraph 提供遵从 REST 规范的 HTTP API,以供开发者通过 HTTP 请求远程调用 TuGraph 提供的服务。
本文档描述 TuGraph 的 HTTP API 使用方式。
2.请求与响应格式
TuGraph HTTP Server 接收json格式的请求,经过鉴权后开始提取请求中的字段,根据定义好的接口逻辑处理请求,并返回json格式的响应。
2.1.标准响应格式
每一个响应都以标准响应格式返回,格式如下:
body参数 |
参数说明 |
参数类型 |
是否必填 |
|---|---|---|---|
errorCode |
业务级错误码 |
int类型 |
是 |
success |
请求是否成功 |
int类型 |
是 |
errorMessage |
业务级错误信息 |
字符串类型 |
是 |
data |
请求成功时返回的响应信息 |
json字符串 |
是 |
2.2请求类型
2.2.1. 用户登陆
用户在登陆请求中携带用户名和密码发送到服务端。登录成功会收到带有签名的令牌(Json Web Token)和判断是否为默认密码的布尔型变量,客户端储存该令牌,在后续的请求中将令牌加入请求头的Authorization域中。如果登录失败会收到“Authentication failed”错误。
URI: /login
METHOD: POST
REQUEST:
body参数 |
参数说明 |
参数类型 |
是否必填 |
|---|---|---|---|
user |
用户名 |
字符串类型 |
是 |
password |
用户密码 |
字符串类型 |
是 |
RESPONSE: 如果成功,返回的响应信息中success为00,data中包含令牌
body参数 |
参数说明 |
参数类型 |
|---|---|---|
jwt |
令牌 |
字符串类型 |
is_admin |
是否是admin用户 |
布尔类型 |
default_password |
默认密码 |
布尔类型 |
Example request.
{"user" : "admin", "password" : "73@TuGraph"}
2.2.2. 用户登出
用户登出,同时删除已经认证的token,用户后续发送请求时,需要重新登陆,并获取新的token。
URI: /logout
METHOD: POST
REQUEST: http request header中携带调用login接口时返回的token,具体填写的字符串是
Bearer ${jwt},${jwt}就是login接口返回的jwt,body中没有参数
header参数 |
参数说明 |
参数类型 |
|---|---|---|
Authorization |
Bearer ${jwt} |
字符串类型 |
RESPONSE: 如果成功,返回的响应信息中success为00,data中包含
body参数 |
参数说明 |
参数类型 |
|---|---|---|
is_admin |
是否是admin用户 |
布尔类型 |
2.2.3. 身份刷新
已下发的token失效后,需要调用本接口重新认证。后端验证token合法性。token在初次登录后,1小时内有效,过期需要刷新
URI: /refresh
METHOD: POST
REQUEST: http request header中携带调用login接口返回的token,具体填写的字符串是
Bearer ${jwt},${jwt}就是login接口返回的jwt,body中没有参数
header参数 |
参数说明 |
参数类型 |
|---|---|---|
Authorization |
Bearer ${jwt} |
字符串类型 |
RESPONSE: 如果成功,返回的响应信息中success为00,data中包含令牌
body参数 |
参数说明 |
参数类型 |
|---|---|---|
jwt |
令牌 |
字符串类型 |
is_admin |
是否是admin用户 |
布尔类型 |
2.2.4. 调用cypher
用户对TuGraph的增删改查请求需要调用cypher接口,并通过标准的cypher查询语言发起
URI: /cypher
METHOD: POST
REQUEST:
header参数 |
参数说明 |
参数类型 |
|---|---|---|
Authorization |
Bearer ${jwt} |
字符串类型 |
body参数 |
参数说明 |
参数类型 |
是否必填 |
|---|---|---|---|
graph |
查询的子图名称 |
字符串类型 |
是 |
script |
cypher语句 |
字符串类型 |
是 |
RESPONSE: 如果成功,返回的响应信息中success为00,data中包含查询结果
body参数 |
参数说明 |
参数类型 |
是否必填 |
|---|---|---|---|
result |
查询结果 |
json字符串 |
是 |
Example request.
{"script" : "Match (n) return n", "graph" : "default"}