在这里解释了如何使用其REST API与Gremlin服务器进行交互。使用以下命令,我执行相当简单的100-1
脚本。
curl -X POST -d "{"gremlin":"100-1"}" "http://localhost:8182"
我想要的是而不是使用内联脚本,而是用script.groovy
。
我可以使它适用于这种情况,以定义整个脚本的变量:
GROOVY_LOAD_DATA_SCRIPT=$(<script.groovy)
curl -X POST -d "{"gremlin":"${GROOVY_LOAD_DATA_SCRIPT}"}" "http://localhost:8182"
,但是一旦我开始超越命令打破的单线:
{
"message": "body could not be parsed"
}
我创建了一个名为 send.groovy
的文件,其中包含:
{
"gremlin": "x=1+1;x+3"
}
我通过卷曲发送:
$ curl -X POST --data-binary @send.groovy http://localhost:8182/gremlin
{"requestId":"6c0e7f3a-a16c-4fc1-a636-d462dc02b832","status":{"message":"","code":200,"attributes":{}},"result":{"data":[5],"meta":{}}}
如果您想在脚本本身中进行多行,则已经编码了内容,以使其保持有效的JSON(即更改您的行断裂为" n",因为JSON不允许线路破坏线路)。
请注意,您可以使用Python之类的工具将文件内容转换为有效的JSON:
$ cat /tmp/foo
println "Hello " + 'World!'
1+2
$ echo "{"gremlin":$(python -c 'import json, sys; print(json.dumps(sys.stdin.read()))' < /tmp/foo)}"
{"gremlin":"println "Hello " + 'World!'n1+2n"}