4.10.Gremlin

4.10.1.向HugeGraphServer发送gremlin语句,同步执行,压缩返回结果

功能介绍

向HugeGraphServer发送gremlin语句(POST),同步执行,返回结果采用 Gzip 压缩

URI
POST /gremlin
URI参数

Body参数
名称 是否必填 类型 默认值 取值范围 说明
gremlin String 要发送给HugeGraphServer执行的gremlin语句
bindings String 用来绑定参数,key是字符串,value是绑定的值(只能是字符串或者数字),功能类似于MySQL的 Prepared Statement,用于加速语句执行
language String 发送语句的语言类型,默认为gremlin-groovy
aliases String 为存在于图空间的已有变量添加别名
Response
名称 类型 说明
requestId String 请求ID
status Map 返回状态
result Object 结果对象

表1 status对象

名称 类型 说明
message String 消息
code Integer 返回码
attributes Map 信息

表2 result对象

名称 类型 说明
data Array 数据列表

表3 data对象

名称 类型 说明
data Json 具体数据
使用示例
Method & Url
POST http://localhost:8080/gremlin
Request Body
{
    "gremlin": "graph.traversal().V('1:marko')",
    "bindings": {},
    "language": "gremlin-groovy",
    "aliases": {"graph":"gs1-hugegraph", "g":"__g_gs1-hugegraph"}
}
Response Status
200
Response Body
{
    "requestId": "c6ef47a8-b634-4b07-9d38-6b3b69a3a556",
    "status": {
        "message": "",
        "code": 200,
        "attributes": {}
    },
    "result": {
        "data": [{
            "id": "1:marko",
            "label": "person",
            "type": "vertex",
            "properties": {
                "city": [{
                    "id": "1:marko>city",
                    "value": "Beijing"
                }],
                "name": [{
                    "id": "1:marko>name",
                    "value": "marko"
                }],
                "age": [{
                    "id": "1:marko>age",
                    "value": 29
                }]
            }
        }],
        "meta": {}
    }
}

注意:

这里是直接使用图对象(hugegraph),先获取其遍历器(traversal()),再获取顶点。 不能直接写成graph.traversal().V()g.V(),可以通过"aliases": {"graph": "gs1-hugegraph", "g": "__g_gs1-hugegraph"} 为图和遍历器添加别名后使用别名操作。其中,hugegraph是原生存在的变量,__g_gs1-hugegraphHugeGraphServer额外添加的变量, 每个图都会存在一个对应的这样格式(_g${graphspace}-${graph})的遍历器对象。

响应体的结构与其他 Vertex 或 Edge 的 RESTful API的结构有区别,用户可能需要自行解析。

4.10.2.向HugeGraphServer发送gremlin语句,同步执行,不压缩返回结果

功能介绍

向HugeGraphServer发送gremlin语句(POST),同步执行,不压缩返回的结果

URI
POST /gremlinunzip
URI参数

Body参数
名称 是否必填 类型 默认值 取值范围 说明
gremlin String 要发送给HugeGraphServer执行的gremlin语句
bindings String 用来绑定参数,key是字符串,value是绑定的值(只能是字符串或者数字),功能类似于MySQL的 Prepared Statement,用于加速语句执行
language String 发送语句的语言类型,默认为gremlin-groovy
aliases String 为存在于图空间的已有变量添加别名
Response
名称 类型 说明
requestId String 请求ID
status Map 返回状态
result Object 结果对象

表1 status对象

名称 类型 说明
message String 消息
code Integer 返回码
attributes Map 信息

表2 result对象

名称 类型 说明
data Array 数据列表

表3 data对象

名称 类型 说明
data Json 具体数据
使用示例
Method & Url
POST http://localhost:8080/gremlin
Request Body
{
    "gremlin": "graph.traversal().V('1:marko')",
    "bindings": {},
    "language": "gremlin-groovy",
    "aliases": {"graph":"gs1-hugegraph", "g":"__g_gs1-hugegraph"}
}
Response Status
200
Response Body
{
    "requestId": "c6ef47a8-b634-4b07-9d38-6b3b69a3a556",
    "status": {
        "message": "",
        "code": 200,
        "attributes": {}
    },
    "result": {
        "data": [{
            "id": "1:marko",
            "label": "person",
            "type": "vertex",
            "properties": {
                "city": [{
                    "id": "1:marko>city",
                    "value": "Beijing"
                }],
                "name": [{
                    "id": "1:marko>name",
                    "value": "marko"
                }],
                "age": [{
                    "id": "1:marko>age",
                    "value": 29
                }]
            }
        }],
        "meta": {}
    }
}

注意:

这里是直接使用图对象(hugegraph),先获取其遍历器(traversal()),再获取顶点。 不能直接写成graph.traversal().V()g.V(),可以通过"aliases": {"graph": "gs1-hugegraph", "g": "__g_gs1-hugegraph"} 为图和遍历器添加别名后使用别名操作。其中,hugegraph是原生存在的变量,__g_gs1-hugegraphHugeGraphServer额外添加的变量, 每个图都会存在一个对应的这样格式(_g${graphspace}-${graph})的遍历器对象。

响应体的结构与其他 Vertex 或 Edge 的 RESTful API的结构有区别,用户可能需要自行解析。

4.10.3.向HugeGraphServer发送gremlin语句,异步执行

功能介绍

向HugeGraphServer发送gremlin语句(POST),异步执行

URI
POST /graphspaces/${graphspace}/graphs/${graph}/jobs/gremlin
URI参数
名称 是否必填 类型 默认值 取值范围 说明
graphspace String 图空间
graph String
Body参数
名称 是否必填 类型 默认值 取值范围 说明
gremlin String 要发送给HugeGraphServer执行的gremlin语句
bindings String 用来绑定参数,key是字符串,value是绑定的值(只能是字符串或者数字),功能类似于MySQL的 Prepared Statement,用于加速语句执行
language String 发送语句的语言类型,默认为gremlin-groovy
aliases String 为存在于图空间的已有变量添加别名
Response
名称 类型 说明
task_id Integer 任务ID
使用示例
Method & Url
POST http://localhost:8080/graphspaces/gs1/graphs/hugegraph/jobs/gremlin
Request Body
{
    "gremlin": "g.V('1:marko')",
    "bindings": {},
    "language": "gremlin-groovy",
    "aliases": {}
}
Response Status
201
Response Body
{
    "task_id": 1
}

注意:

异步执行Gremlin语句暂不支持aliases,可以使用 graph 代表要操作的图,也可以直接使用图的名字, 例如 hugegraph; 另外g代表 traversal,等价于 graph.traversal() 或者 hugegraph.traversal()

注:

可以通过GET http://localhost:8080/graphspaces/gs1/graphs/hugegraph/tasks/1(其中"1"是task_id) 来查询异步任务的执行状态

results matching ""

    No results matching ""